|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 minamikotori 于 2020-12-20 10:50 编辑
- #include <stdio.h>
- #define MAX 1024
- int main()
- {
- char str[MAX];
- char *target = str;
- int length = 0;
- printf("请输入一个字符串:");
- fgets(str, MAX, stdin);
- while (*target++ != '\0')
- {
- length++;
- }
- printf("您总共输入了 %d 个字符!\n", length - 1);
- return 0;
- }
复制代码
这段代码在不输入任何字符的时候,是怎么进行比较的
*target 是‘\0’吧
那*target++ 里面是什么了
很简单,在不输入任何东西的情况下,str[0] = '\n', str[1] = '\0' ,就是说,str[] 并不空,代码中的变量 length 是在统计字符串结束标志 '\0' 前面有几个字符,很显然,length = 1,因为换行符 '\n' ,使用 fgets() 读入的每一个字符串中,最后一个字符都是 '\n',所以,为了忽略它,最后,在显示字符数量时,使用的是 length - 1。
|
|