新手问题---输出字符串函数

来源:百度知道 编辑:UC知道 时间:2024/06/01 03:12:42
char s[10]="a b c d";
put(s);
为什么会输出a b c d啊,
不是遇空格(\0)就停止输出了吗?
在scanf();printf();和puts()gets();中空格跟'\0'的作用不一样吗?
在什么情况下空格被当作是结束标志使用啊
谢谢各位啊

'\0'是ACSII码为0,空格的ACSII码是32

不是遇到空格就停止的,而是全部输出

\0不是空格的意思,它是电脑自动加在字符串最后的、表示该字符串结束的标志
你定义的a b c d其实在电脑里是a b c d\0
所以它输出的时候会一直输出,直到它遇到\0就停止输出了

用scanf输入的时候,它遇到空格就停止了

如果是用
for(i=0;i<n;i++)
scanf("%c",&s[i]);
这样输入空格也会是'/0'

puts()函数遇到空格是不会停止输出的 只有碰到'\0'才停止输出
scanf();printf();和puts()gets();
中空格和'\0'功能是不同的
在输入函数中一般空格作为结束符
在输出函数中'\0'作为结束符!