1544: Counting Words
Time Limit: 1 Sec Memory Limit: 128 MB
Submit: 650 Solved: 358
[Submit][Status][Web Board]
Description
DongDong prefers English words to English sentences, so he wants to count the words of a sentence. Could you help him?
Input
The first line contains a positive integer T (T<=1000), which means T test cases. Then comes T lines, each line contains a string which combines with several words separated by spaces. Note that there may be more than one space to separate two words.
Output
For each test case, please print the number of words of the sentence.
Sample Input
3
Every night in my dreams
I see you I feel you
That is how I know you go on
Sample Output
5
6
8
HINT
Source
首屆全國中醫藥院校大學生程序設計競賽
Ac_code:
//way1(現在寫這個博客就是爲了記錄學到的這種新方法):
#include <iostream>
#include <sstream>
#include <stdio.h>
using namespace std;
int main()
{
int T;
cin>>T;
getchar();
while(T--)
{
string s,word;
getline(cin,s);//從終端接收一行字符串,並放入字符串s中
istringstream istr;
istr.str(s);//把s中的字符串存入字符串流中
int Wnum = 0;
while(istr>>word)//每次讀取一個單詞(以空格爲界),存入word中
{
Wnum++;
}
cout<<Wnum<<endl;
}
return 0;
}
//way2:
(之前用C寫的)
#include <stdio.h>
#include <string.h>
char a[10005];
int main()
{
int t;
scanf("%d",&t);
getchar();//不要放while裏面去了!!
while(t--)
{
memset(a,'\0',sizeof(a));
gets(a);
int start = 0,num = 0;
while(a[start]==' ')
{
start++;
}
for(int i = start; a[i] != '\0'; i++)
{
if(a[i]!=' '&&a[i+1]==' ')
num++;
else if(a[i]!=' '&&a[i+1]=='\0')
num++;
}
printf("%d\n",num);
}
return 0;
}