问题标题: 酷町堂:1093 书名规范管理

0
0
已解决
周旭东
周旭东
初级光能
初级光能

1093   书名规范管理

题目描述 Description

一图书馆在记录书名的时候总是按照一定的规范管理的,其规范如下: 书名只由字母、数字及连字符(-)组成,且如果书名的第一个字符是字母,则必为大写字母,而其他的字母都是小写字母。且每本书名单词与单词之间需用连字符连接,形成一个完整的书名。如果你是图书馆管理员,请将N本书的书名按照规范整理出来。 如:the-old-Man-and-the-sea,应整理成:The-old-man-and-the-sea。

输入描述 Input Description

输入为N+1行:
第一行为一个整数N,表示有N本书名需要规范整理,书名每个单词之间需用连字符连接(n≤100)。
接下来N行,每行一串字符,且长度不超过50,表示未进行规范整理的书名。

输出描述 Output Description

输出为N行,每行一串字符,对应输入的书名的规范写法。

样例输入 Sample Input

 

1
the-old-Man-and-the-sea

样例输出 Sample Output

 

The-old-man-and-the-sea


1
已采纳
王子健
王子健
初级天翼
初级天翼

这一题属于字符串的题目,所以你必须是现在的语言速成班1-3班中的一员。

你问了,你应该会一些,我来帮助一下你。

首先,要输入的东西得有,就是定义:

string s[101],ss;
int i,n,t,j,k,l;

接着是输入和判断,这一段是这个代码中的重中之重:

cin>>n;
    for(int i=1;i<=n;++i)cin>>s[i];
    for(int i=1;i<=n;++i)
    {
        ss=s[i];
        if(ss[0]>='a'&&ss[0]<='z')
            ss[0]-=32;
        l=ss.size();
        for(int j=1;j<l;++j)
        if(ss[j]>='A'&&ss[j]<='Z')
            ss[j]+=32;
        s[i]=ss;
    }

最后是输出:

for(i=1;i<=n;++i)cout<<s[i]<<endl;

望采纳,谢谢。

0
我要回答