c 语言 存储字符串的方法
1,使用字符数组,代码如下:
char name[]="wangtianqiao";
char *cPoint;
cPoint = name ;
printf("%s\n",name);
printf("%c",name[4]);
printf("%c",*(cPoint+4));
char *cPoint;
cPoint = name ;
printf("%s\n",name);
printf("%c",name[4]);
printf("%c",*(cPoint+4));
char *cPoint="wangtianqiao";
printf("%s",cPoint);
3,把字符串a赋值给字符串b,注意字符串都是以'\0'结尾的,printf("%s",cPoint);
char a[]="I am a boy.",b[20];
int i;
for(i=0;*(a+i)!='\0';i++)
*(b+i)=*(a+i);
*(b+i)='\0';
for(i=0;*(b+i)!='\0';i++)
printf("%c\n",*(b+i));
4,字符串的经典赋值:int i;
for(i=0;*(a+i)!='\0';i++)
*(b+i)=*(a+i);
*(b+i)='\0';
for(i=0;*(b+i)!='\0';i++)
printf("%c\n",*(b+i));
for(;(*b++ = *a++)!='\0';);
上面这一句就可以完成赋值 语句了。
等价于:
while((*b++=*a++)!='\0');
5,字符指针变量指向格式字符串,可以使用printf直接输出。
char *format = "a=%d";
printf(format,10);
printf(format,10);
6,指针数组中的每一个元素都是一个指针,其指向不同的内存区域,如果指针数组元素指向的是字符数组,那么可以使用字符库函数,如下:
char *p[2]={"my","what's your name"};
printf("%x\n",p[0]);
printf("%x\n",p[1]);
if(strcmp(p[0],p[1])<0)
{
printf("p[0] is small than p[1]");
}
printf("%s",p[0]);
getch();
printf("%x\n",p[0]);
printf("%x\n",p[1]);
if(strcmp(p[0],p[1])<0)
{
printf("p[0] is small than p[1]");
}
printf("%s",p[0]);
getch();
7,指针相减得到的是相差的个数而不是字节数
如下代码,输出的值为3,
int a[]={12,23,12,121,1211,2123,1333};
int *p1,*p2;
p1 = &a[1];
p2 = &a[4];
printf("%d",p2-p1);
int *p1,*p2;
p1 = &a[1];
p2 = &a[4];
printf("%d",p2-p1);
8,指针的比较必须在 同一个数组中进行比较。不在同一个数组进行比较,是没有意义的。
int *p1,*p2;
p1 = &a[1];
p2 = &a[4];
printf("%d\n",p2-p1);
if(p1<p2)
{
printf("%d",p1<p2);
}