16305: 烦恼
时间限制: 1.000 Sec 内存限制: 128 MB
提交状态
题目描述
老师每天都要批改作文,他想知道这篇作文有多少字符,以及多少单词,请你帮助他。
输入
单独一行字符串:表示作文的内容,保证只出现大小写英文字母、数字或空格。
输出
第一行:单个整数,表示输入字符串中的可见字符的个数。英文字母和数字属于可见字符,空格和换行属于不可见字符。
第二行:单个整数,表示输入字符串中的单词个数。单词是指连续的,由可见字符组成的字符串。
样例输入 Copy
【样例1】 One apple a day 【样例2】 7 days a week
样例输出 Copy
【样例1】 12 4 【样例2】 10 4
提示
设输入字符串长为|S|,保证1 ≤ |S| ≤ 100000,两个相邻的单词间有且仅有一个空格。
AC代码:
#include <iostream>
using namespace std;
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
int main(int argc, char** argv) {
string s;
getline(cin,s); //这样的输入才可以读入空格,cin是不可以读入空格的
int t=0,k=0;
for(int i=0;i<s.length();i++)
{
if(s[i]!=32) //32是空格的ASCII码
{
t++;
}
if(s[i]==32&&s[i+1]!=32) //这个是空格而后面那个不是空格的才是单词。但会落掉第一个单词
{
k++;
}
}
cout<<t<<endl;
cout<<k+1<<endl; //故需要加1把落掉的加回来。
return 0;
}
个人小白,见解!!!