
依旧先让各位思考几分钟
好,时间到。这个题目涉及到了一个新概念——字符串——是由一组字符所构成的一群信息数据。联想到我们之前所学的字符型char,它可以用于定义存储一个字符的变量,不妨设为s。当我们在变量后面加上一个中括号,那么我们就相当于定义了一组字符空间——那个中括号即为字符空间的具象化。这个中括号内应填入的字符空间的大小,如果是100,那就通常最多能存储99位字符串,以/0结尾,这个我们一会说。此外s也改名为字符数组。
一般有两种方式给字符数组赋值。其一是直接定义,如下图第十一行
![]()
其二是通过scanf函数
![]()
注意格式占位符应用%s。我们简单写个程序感受一下scanf函数读取字符串的效果

我们输入一下hello bilibili试试

奇怪的事情发生了,为什么只读了一半呢?这就跟我们的scanf函数的工作原理有关系了。
scanf会从第一个非空白符开始向后找,找到第一个空白符截止,停止读取。这也是我们本题所需要解决的一个关键。在C语言手册cppreference.com --- cppreference.com上我们可以找到解决办法
在右上角的搜索框搜索scanf,点击第一个搜索结果,往下翻到一个表格,大概长这样
我们看到这个[set],第一条规则的意思很简单,举个例子,scanf("%^abc", s),这行代码就是说除了abc其他的字符都允许被读入

于是我们可以搞一个不会在我们日常输入中出现的字符即可。然后再和我们练习(一)的结果结合一下,就可以啦

2470

被折叠的 条评论
为什么被折叠?



