zzuli oj 1178 单词数

本文介绍了一种方法,用于统计给定文章中不同单词的总数。通过使用二维数组记录句子中的各个单词,并在单词末尾添加,然后比较每个单词与前面的单词以确定唯一数量。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Description

  统计一篇文章里不同单词的总数。

Input

  有多组数据,每组一行,每组就是一篇小文章。每篇小文章都是由小写字母和空格组成,没有标点符号,遇到#时表示输入结束。

Output

  每组只输出一个整数,其单独成行,该整数代表一篇文章里不同单词的总数。

Sample Input

  you are my friend
  #

Sample Output

  4

 

第一次写的时候没看清题  (不同单词)   导致WA了一发··

思路理清楚后也不是什么难题,用二维数组来记录一行句子中的各个单词,每个单词后要加\0  

最后每个单词都与它前面的各个单词对比,没有相同的话就count++啦

#include <iostream>
#include <cstdio>
#include <cstring>

char word[2000][2000];
char s[1000000];
int main(int argc, char** argv)
{
    while(gets(s),s[0]!='#')
    {
        int t=0,l=0;
        int len=strlen(s);
        int i=0;
        while(i<len)
        {
            if(s[i]==' ')
            {
                while(s[i]==' ')
                    i++;
            }
            else
            {
                while(s[i]!=' '&&s[i]!='\0')
                    word[t][l++]=s[i++];    //将单词存入二维组
                word[t][l]='\0';     //别忘记在单词末尾加上\0
                t++;
                l=0; 
            }
        }
        
        /*接下来进行筛选*/
        int count=0;
        int flag=0;
        for(int j=0;j<t;j++)
        {
            flag=0;
            for(int k=0;k<j;k++)
            {
                if(strcmp(word[k],word[j])==0)//如果找出此单词与前面某个单词相同,则不计入单词数 
                    flag=1;
            }
            if(flag==0)
                count++;
        }
        
        printf("%d\n",count);
    }
    return 0;
}

 

转载于:https://www.cnblogs.com/millerchan/p/5068184.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值