洛谷P1907口算练习题

 

 如果每次输入固定是三个数据,那就比较简单了,直接依次读入处理就可以得到这三个数据。但是这里给出的数据可能是两个数字,也可能是三个数字,所以不能直接读入。因此可以将整条语句读入字符数组中,然后再根据字符串进行判断,根据不同情况分离出数据。代码:

使用fgets函数来读入一行字符串,并存入字符数组中,空格也一起存下(gets函数有溢出风险故不使用)。

fgets函数使用格式为:fgets(s,sizeof(s),stdin),三处意义分别为:要读入到的字符串、读入字符串的长度和从何种流中读取(一般为标准流stdin)。

接下来使用的sscanf函数,可以从已经存储下来的字符串中读取信息。同理,sprintf可以将信息读入到字符串中。scanf和sscanf,printf和sprintf是很接近的。

以scanf和sscanf为例,scanf是从标准中读入,而sscanf是从已知字符串中读入。所以要额外提供字符串的名称,表示从哪个字符串中读取信息。

本题中指令字符串中第一个字符是'a','b','c',这回影响从这个字符串中读入信息。故将该字符串赋值为空格。

原文地址:https://www.cnblogs.com/qianr/p/12512456.html