单词的个数

从大神处学习的,主要关键是sscanf函数的一个用法,就是遇到空格时,读入结束。还有gets函数的一个点,与scanf不同的是输入字符串是直到换行符时才结束,而scanf函数遇到空格时读入就结束了。@:http://acm.hdu.edu.cn/showproblem.php?pid=2072

其中一个思想是用二维数组记录一行字符串,我觉得这个思想很好。

#include <iostream>

#include <string>

using namespace std;

char word[100];

char arr[100][100];

int main()

{  

      int len,pos;

      int k;  

    while(gets(word)&&strcmp(word,"#")!=0)  

  {

      len=strlen(word);  

       char temp[100];   

      int cnt=0;  

      pos=0;  

   while(pos<len)  

   {           

        sscanf(word+pos,"%s",temp);   

         for(k=0;k<cnt;k++)      

           if(strcmp(temp,arr[k])==0)      

               break;    

          if(k==cnt)      

            strcpy(arr[cnt++],temp);    

            pos+=strlen(temp)+1;  

 }  

        cout<<cnt<<endl;

 }

 return 0;

}

posted @ 2013-01-28 20:41  xshang  阅读(152)  评论(0编辑  收藏  举报