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

时间:2023-03-08 17:45:21

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

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

#include<cstdio>

int main()
{
char s[];
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 ;
}
  1. 赋值语句 p = s 是将字符数组s的首地址赋给指针p,就是指针p指向字符数组
  2. 最后p指向字符数组的结束符‘\0’的地址,而s为字符数组的首地址
  3. 二者相减就可以得出两个地址之间的字符个数,就是被测字符数组的
  4. 长度