代码改变世界

c语言利用指针计算字符串的长度

2013-08-02 14:20  youxin  阅读(6502)  评论(0编辑  收藏  举报

可以用strlen函数,这里我们自己写一个。

注意:不能用scanf,scanf一遇到空格就认为输入结束。应该用gets(),遇到换行符或EOF结束。说明可以接受空格。

#include<cstdio>

int main()
{
    char s[20];
    char *p;
    printf("please input a string(less than 20 character):\n");
    //scanf("%s",s);不能读入空格
    gets(s);
    p = s;
    while(*p!='\0')
    p++;
    printf("The string lenth is %d\n",p-s);
    return 0;
}
  1. 赋值语句 p = s 是将字符数组s的首地址赋给指针p,就是指针p指向字符数组  
  2. 最后p指向字符数组的结束符‘\0’的地址,而s为字符数组的首地址  
  3. 二者相减就可以得出两个地址之间的字符个数,就是被测字符数组的  
  4. 长度