黑马程序员技术交流社区
标题:
今天整理C语言日记,有道指针和字符串的习题有点不明白
[打印本页]
作者:
wxy19891017
时间:
2015-4-6 20:42
标题:
今天整理C语言日记,有道指针和字符串的习题有点不明白
#include <stdio.h>
/*
(不包括\0)编写一个int string_len(char *s),返回字符串s的字符长度
*/
int string_len(char *s);
int main()
{
//char *name = "itcast";
// 男 \u434\u4343\u434
int size = string_len("tre777");
printf("%d\n", size);
return 0;
}
int string_len(char *s)
{
// 1.定义一个新的指针变量指向首字符
char *p = s;
/*
while ( *s != '\0' )
{
s++;
}*/
while ( *s++ ) ;
return s - p - 1;
}
找了找视频,正好讲这个习题的视频没有,代码中其它两种方法都理解,就是这个返回值 s-p-1,这个还没搞懂什么意思。舍不得黑马币去悬赏,所以在这交流下,有哪位学长能指教下吗?
作者:
kim55666
时间:
2015-4-6 21:02
s++走到了\0位置, p是初始位置,s-p= 字符串的长度,包括\0。strlen不包含\0所以再 -1.
作者:
波阿波
时间:
2015-4-6 21:02
多看看 多敲敲代码
作者:
wxy19891017
时间:
2015-4-7 23:06
kim55666 发表于 2015-4-6 21:02
s++走到了\0位置, p是初始位置,s-p= 字符串的长度,包括\0。strlen不包含\0所以再 -1. ...
哦哦哦。原来如此,非常感谢,一直没搞明白这个!:handshake
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2