语句{char *s;scanf("%s",s);puts(s);} /*假设执行时输入ABCDE<回车>*/ 可以正确输出字符串“ABCDE”吗?
1个回答
2022-09-28 · 百度认证:北京惠企网络技术有限公司官方账号
关注
展开全部
不一定,多数情况下不会正确输出字符串。
由于没有分配空间,且指针s的值未知,所以,向一个不属于空间写入数据后,结果未知,多数情况下会崩溃......系统一般不会向别人的内存空间乱写的,当然不排除运气好的时候。
scanf函数和getchar函数在输入时是读取到“回车”就结束的,而回bai车符留在了输入流缓冲区,当下一次输入仍用scanf或者getchar读入一个字符的时候,则会把缓冲区的回车符读取从而导致结果不正确,但若第二次是用scanf输入一个数字的时候,scanf则会跳过空白字符,可以正常输入。
扩展资料:
通常以串的整体作为操作对象,如:在串中查找某个子串、求取一个子串、在串的某个位置上插入一个子串以及删除一个子串等。两个字符串相等的充要条件是:长度相等,并且各个对应位置上的字符都相等。设p、q是两个串,求q在p中首次出现的位置的运算叫做模式匹配。串的两种最基本的存储方式是顺序存储方式和链接存储方式。
参考资料来源:百度百科-字符串
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询