链接:http://acm.hdu.edu.cn/showproblem.php?pid=2072
题解:先判断是否为小写字母,如果是就加入字符串中,然后用map存下单词的数量,之后在输出map的长度即可。用到了map和cctype的isalpha的函数。
代码:
#include <iostream> #include <string> #include <stdio.h> #include <map> #include <cctype> #include <string.h> using namespace std; map<string,int> str; int main() { int i=0,num=0,sum; char ch; char s[101]; while(scanf("%c",&ch)&&ch!='#') { if(isalpha(ch)) { s[i++]=ch; } else if(ch!='\n') { s[i]='\0'; sum=strlen(s); i=0; if(sum)str[s]++; } else if(ch=='\n') { s[i]='\0'; i=0; sum=strlen(s); if(sum)str[s]++; num=str.size(); cout<<num<<endl; num=0; str.clear(); memset(s,0,sizeof(s)); } } return 0; }