c 语言 存储字符串的方法

1,使用字符数组,代码如下:

 

 char name[]="wangtianqiao";
    char *cPoint;
    cPoint = name ;
    printf("%s\n",name);
    printf("%c",name[4]);
    printf("%c",*(cPoint+4));
 
 2,使用字符指针,代码如下:

 

    

  char *cPoint="wangtianqiao";

    printf("%s",cPoint);
  
3,把字符串a赋值给字符串b,注意字符串都是以'\0'结尾的,

 

 

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,字符串的经典赋值:

 

  for(;(*b++ = *a++)!='\0';); 

上面这一句就可以完成赋值 语句了。

  等价于:

while((*b++=*a++)!='\0');

 

5,字符指针变量指向格式字符串,可以使用printf直接输出。

 

 char *format = "a=%d";
   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();
 

 

7,指针相减得到的是相差的个数而不是字节数

如下代码,输出的值为3,

  int a[]={12,23,12,121,1211,2123,1333};
   int *p1,*p2;
   p1 = &a[1];
   p2 = &a[4];
   printf("%d",p2-p1);

8,指针的比较必须在 同一个数组中进行比较。不在同一个数组进行比较,是没有意义的。

int a[]={12,23,12,121,1211,2123,1333};
   int *p1,*p2;
   p1 = &a[1];
   p2 = &a[4];
   printf("%d\n",p2-p1);
   if(p1<p2)
   {
    printf("%d",p1<p2);
   }

 

 

 

 

 

 

 

 

 

posted on 2011-10-11 23:44  wtq  阅读(3710)  评论(0编辑  收藏  举报