指针 和 字符串

用指针遍历字符串的所有字符:
  1 // 定义一个指针p
  2 char *p;
  3
  4 // 定义一个数组s存放字符串
  5 char s[] = "mj";
  6
  7 // 指针p指向字符串的首字符'm'
  8 p = s; // 或者 p = &s[0];
  9
  10 for (; *p != '\0'; p++) {
  11 printf("%c \n", *p);
  12 }

用指针直接指向字符串:
  1 #include <string.h>
  2
  3 int main()
  4 {
  5 // 定义一个字符串,用指针s指向这个字符串
  6 char *s = "mj";
  7
  8 // 使用strlen函数测量字符串长度
  9 int len = strlen(s);
  10
  11 printf("字符串长度:%D", len);
  12 return 0;
  13 }

其实,调用strlen函数时,你传一个地址给它就行了,它会从这个地址开始计算字符的个数,直到遇到空字符'\0'位置,
因此传入指针变量或者数组名都可以。

其他字符串处理函数也是一样的:
  1 char *strcpy(char *, const char *); // 字符串拷贝函数
  2 char *strcat(char *, const char *); // 字符串拼接函数
  3 int strcmp(const char *, const char *); // 字符串比较函数

char a[] = "lmj";定义的是一个字符串变量!
char *p2 = "lmj";定义的是一个字符串常量!严格来说,应该写成const char *p2 = "lmj";,前面加个常量修饰符

 

 

posted @ 2013-09-19 00:29  tzktzk1  阅读(154)  评论(0编辑  收藏  举报