NEFU 1002

http://acm.nefu.edu.cn/JudgeOnline/problemShow.php?problem_id=1002

代码一:

#include <iostream>
#include <stdio.h>
#include <cstring>
using namespace std;

int main()
{
    int k,n,flag,len;
    char a[1005],b[305][400];
    while(cin>>n)
    {
        getchar();
        while(n--)
        {
            memset(a,0,sizeof(a));
            memset(b,0,sizeof(b));
            gets(a);
            flag=0;
            len=strlen(a);
            k=-1;
            for(int i=0,j=0;i<len;i++)
            {
                if(a[i]>='a'&&a[i]<='z')
                {
                    if(flag)
                    {
                        b[k][j]=a[i];
                        j++;
                    }
                    else
                    {
                        k++;
                        j=0;
                        b[k][j]=a[i];
                        j++;
                    }
                    flag=1;
                }
                else
                {
                    if(flag)
                    {
                        b[k][j]='\0';
                        j=0;
                    }
                    flag=0;
                }
            }
            for(int i=0;i<=k;i++)
                if(i!=k) cout<<b[i]<<' ';
                else cout<<b[i]<<endl;
            cout<<k+1<<endl;
        }
    }
}

代码二:

#include <iostream>
#include <stdio.h>
#include <cstring>
using namespace std;

int main()
{
    int n,lena,lenb,count;
    char a[1005],b[1005];
    while(cin>>n)
    {
        getchar();
        while(n--)
        {
            count=0;
            memset(a,0,sizeof(a));
            memset(b,0,sizeof(b));
            a[0]=' ';
            gets(a+1);
            lena=strlen(a);
            for(int i=1,j=0;i<lena;i++)
            {
                if((a[i-1]<'a'||a[i-1]>'z')&&(a[i]<'a'||a[i]>'z'))
                    b[j]=' ';
                else
                {
                    if(a[i]>='a'&&a[i]<='z') b[j]=a[i];
                    else b[j]=' ';
                    j++;
                }
            }
            lenb=strlen(b);
            for(int i=0;i<lenb;i++)
            if(b[i]==' ')
            count++;
            cout<<b<<endl<<count+1<<endl;
        }
    }
}

Description

有一个用空格( )、逗号(,)或是句号(.)分隔的许多英文单词组成的字符串(分隔的空格可以是多个)。请编写程序将这些单词分开并输出。

要求,在main函数中完成数据的输入。在子函数中完成拆分单词及统计个数。
提示:可以将待拆分的字符串作为参数进行拆分。拆出的单词可以用指针数组分别指向,并可以在子函数中输出(这样就不必把用指向分出单词的指针数组作为参数了)。子函数返回拆出的单词的个数,个数可以在main中输出。

Input

put
  输入的数据可以有多组,首先第一行输入一个整数n,接下来是n行,每行是用空格、逗号、句号分隔的字符串,字符串的长度少于1000个字符,拆出的单词的个数少于300个。

Output

对于每组数据,首先 输出每行字符串分出的单词(分出的各个单词用空格分隔)。接下来输出分出的单词的个数。

Sample Input

2
good a day
i am a
3
good morning. how are you, this is a desk
yellow blue red grey
hong se
1
   good you. ke   kkk   kkkkk            diek

Sample Output

good a day
3
i am a
3
good morning how are you this is a desk
9
yellow blue red grey
4
hong se
2
good you ke kkk kkkkk diek
6

Hint

Source


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值