洛谷:P5015 标题统计

展开

题目描述
凯凯刚写了一篇美妙的作文,请问这篇作文的标题中有多少个字符? 注意:标题中可能包含大、小写英文字母、数字字符、空格和换行符。统计标题字 符数时,空格和换行符不计算在内。

输入格式 输入文件只有一行,一个字符串 ss。

输出格式 输出文件只有一行,包含一个整数,即作文标题的字符数(不含空格和换行符

输入输出样例:
输入 234 输出3
输入 Ca 45 输出 4

错误
输入:cd 44
输出:2
原因:

scanf("%s",s) :输入字符串时,如果输入了空格会认为字符串结束,空格后的字符将作为下一个输入项处理

gets()

gets从标准输入设备读字符串函数,其可以无限读取,不会判断上限,以回车结束读取,所以程序员应该确保buffer(缓冲寄存器)的空间足够大,以便在执行读操作时不发生溢出。

gets()和scanf("%s",s)

scanf("%s",s) :输入字符串时,如果输入了空格会认为字符串结束,空格后的字符将作为下一个输入项处理

gets(s)函数将接收输入的整个字符串直到遇到换行为止

#include
#include
int main()
{
	int i, c = 0;
	char s[20];
	scanf("%s", s);//错误输入
	for (i = 0;i < strlen(s); i++)
	{
		if (s[i] != ' ' && s[i] !='\n')
			c++;
	}
	printf("%d",c);

}

正确:

#include
#include
int main()
{
	int i, c = 0;
	char s[20];
	gets(s);
	for (i = 0;i < strlen(s); i++)
	{
		if (s[i] != ' ' && s[i] !='\n')
			c++;
	}
	printf("%d",c);

}

你可能感兴趣的:(洛谷题)