C语言
#include<stdio.h>int main()
{
char str;int i;
scanf("%s",str);
i = strlen(str);
printf("%d",i);
}
为什么输入 abcd<空格>后输出的是4啊??
abcd加上空格然后再加上一个自动加上的结束符不应该长度总共为6吗?
str[] 无 \0。
*str 才有 \0
数组有固定长度,你这里长度是40。为什么要自动加\0。 众所周知,scanf标准输入函数以空格或回车作为字符串的界定符。然后又是众所周知,自动加上的结束符跟数组长度没关系,数组长度是可用长度 第一:字符长度是不包含“\0”滴
第二:空格或回车是scanf中字符串的界定符
页:
[1]