[c语言中的指针数组问题]*p+i,是先执行*p,然后再加i 如int a[2]={1,2}; int *p; p=a;//p指向数组a,即指向数组a的第一个元素,即1 那么*p=1;*p+1=1+1=2;*p+3=1+3=4; *p[i],p[i]本身就是一个指针,*p[i]取p[...+阅读
这问题简单:例 strcpy(p[0],"数学") printf("%s\n",p[0]); 输出数学,这个你应该明白。char *p[3]; p[0]="数学";这里的的先定义一个指针数组,强调是一个数组,3个元素,每个元素都是一个指针,p[0]是一个指针 p[0]="数学" 把一个字符串给一个指针,然后printf("%s\n",p[0]); 就输出这个指针指的字符串了,明白了吧。必须明白啊!!! 初学者也没有关系,要多用,多见新知识进步才快,祝你学习进步,把字符串那几个函数都整理了,不然以后工作后也要不上!!! 字符串处理函数:字符串函数可分为:字符串输出(puts),输入(gets),合并(stract),拷贝(strcpy),比较(strcmp),转换,复制,搜索(strchr) 注意:这一章例题中的字符串可用指针代替。给你点我整理的!!1 字符串输出函数puts:格式:puts(字符数组名);功能:把字符数组中的字符串输出到显示器。例:#include main() { char a[]="made in china\r\nis well"; puts(a); } 注意:puts()函数可以使用转义字符; puts完全可以由printf函数取代,当要求按格式输出时通常用printf ;2 字符串输入函gets:格式:gets(字符数组名);功能:从标准输入设备键盘上输入一个字符串;该函数得到一个函数值为该字符数组的首地址;例:#include main() { char a[15]; printf("in put a string:\r\n"); gets(a); puts(a); } 注意:gets函数不以输入中的“空格”为结束标志,这与scanf函数不同;3 字符串连接函数strcat:格式:strcat(字符数组名1, 字符数组名2);功能:把字符数组2里字符串连接到字符数组1里字符串的后边并删除字符串1的串结束标志'\0';返回值为数组1的首地址,因此数组1要有足够的长度;例:#include #include main() { static char a[]="my name is "; char b[15]; printf("in put your name\r\n"); gets(b); strcat(a, b); puts(a); }4 字符串拷贝函数strcpy:格式:strcpy(字符数组名1, 字符数组名2);功能:把字符数组2中的字符串拷贝到字符数组1中;字符数名2,也可以是一个字符串常量。这时相当于把一个字符串赋予一个字符数组。例:#include #include main() { char a[20]; char b[]="made in china"; strcpy(a, b); puts(a); } 注意:要求字符数组1要有足够的长度。5 字符串比较函数:注意:
1、逐字对比判断字符的ASCII码值大小。
2、比较到某个字符判断出大小时立即结束。输出非零。
3、字符串相同时输出零 strcmp:格式:strcmp(字符数组名1, 字符数组名2);功能:按照ASCII码的顺序比较两个数组中的字符串,并由函数返回值返回比较结果。字符串1=字符串2,返回值=0;字符串1>字符串2,返回值>0;字符串1本函数可以比较两个字符串常量,或比较数组和字符串常量。例:#include #include main() { int k; char a[20]; char b[]="i love china"; printf("in put s string\r\n"); gets(a); k=strcmp(a, b); if(k==0) printf("a=b\r\n"); if(k>0) printf("a>b\r\n"); if(k printf("a } 注意:不是比较字符串长度,而是比较ASCII码的大小,可用于姓名字母排序。strncmp:格式:strncmp(字符数组名1,字符数组名2,int length);功能:比较字符串1和字符串2的前length个字符;字符串1=字符串2,返回值=0;字符串1>字符串2,返回值>0;字符串1例:#include #include main() { int k; char *a="I love china"; char *b="I am happy"; k=strncmp(a, b, 6); if(k>0) printf("the string b is greater than string a\r\n"); if(kprintf("the string b is less than string a\r\n"); if(k==0) printf"(" the string b is equal string a\r\n ") } strncmpi:格式:strncmp(字符数组名1,字符数组名2,int length);功能:比较字符串1和字符串2的前length个字符,不区分大小写;例:6 测字符串长度函数strlen:格式:strlen(字符数组名);功能:测字符串的实际长度(不含串结束标志'\0',但转义字符算一个字符),并作为函数的返回值;例:#include #include main() { int k; char a[]="i love china"; k=strlen(a); printf("the length of string is:%d\r\n", k); } 注意;字符串不能用==或者!= 的只能用函数。7 字符搜索函数strchr:格式:strchr(字符数组名,待找的字符);功能:查找字符串中首次出现字符的位置,并返回出现字符位置的指针,若字符不存在则返回NULL;例:#include #include main() { char a[30]; char *p,; strcpy(a, "I love china"); p=strchr(a, c); if(p) printf("the character %c is at position %d\r\n", c, p-a); else printf("the character is not found:\r\n"); } 注意:倒数第三句的(p-a)用法。
以下为关联文档:
C语言qsort函数对char型strmn数组的排序// 这样写就OK啦。 int cmp(const void *a, const void *b) { char *aa = (char *) a; char *bb = (char *) b; return strcmp(aa,bb); } // const void *a是表示一个指向co...
C语言中 memset函数都可以给什么类型的数组清零任何类型的数组都可以,实际上memset函数是对某一个地址以及该地址之后的一串空间进行赋值操作,只要是地址值,都可以被赋值。 1、memset是计算机中C/C++语言函数。将s所指向的某...
C语言中对字符串进行操作的标准库函数有哪些1)字符串操作 strcpy(p, p1) 复制字符串 strncpy(p, p1, n) 复制指定长度字符串 strcat(p, p1) 附加字符串 strncat(p, p1, n) 附加指定长度字符串 strlen(p) 取字符串长度 s...
C语言结构体数组的定义1、C语言结构体数组的定义:数组是有序的并且具有相同类型的数据的集合。 2、结构数组就是具有相同结构类型的变量集合。假如要用C语言,定义一个班级40个同学的姓名、性别、年...
C语言程序设计数组指针与字符串程序我在vc6.0上调试过了,能通过。 希望对你有所参考。 #include<iostream> using namespace std; int* min(int*array,int*s) { for(int i=0;i<5;i++) { for(int j=5*i;j<5*...
C语言字符指针数组#include"stdio.h" #include #define A 7 void main() { int i; char **p; p=(char **)malloc(sizeof(char *)); for(i=0;i p[i]=(char*)malloc(sizeof(char)); for(i=0;i { g...
C语言通用函数字符指针数组寻找指定字符串#includenbsp;“stdafx.h“#includenbsp;amp;lt;stdio.hamp;gt;#includenbsp;amp;lt;string.hamp;gt;intnbsp;str2str(constnbsp;charnbsp;*str,nbsp;constnbsp;charnbsp;*s...
字符串数组与字符指针的区别一、 读写能力 char *a = “abcd”; 此时"abcd"存放在常量区。通过指针只可以访问字符串常量,而不可以改变它。 而char a[20] = “abcd”; 此时 "abcd"存放在栈。可以通过指针去访...
c语言字符数组指针#include "stdio.h" #include "string.h" void main() { char a[81]=""; char *p=a; int n,k,pos; puts("input the data"); gets(a); n=strlen(a); puts("the position you want to...