问题标题: 酷町堂:1100 只求思路

0
0
已解决
徐云皓
徐云皓
新手天翼
新手天翼

1100   复合单词规范书写

题目描述 Description

在英文中如果需要把几个同性质的单词组成一个单词需要用到连字符(-),即每个单词之间用一个连字符连接组成一个新的单词。小明同学刚学习复合单词的写法,没有注意书写规范,每个单词之间可能用多个连字符连接。请你按照复合单词书写规范来修改小明同学的组词,删除多余连字符,每个单词之间仅保留一个连字符。

输入描述 Input Description

输入为一行,包含一个长度不超过200的字符串。(句首和句末都没有连字符)

输出描述 Output Description

输出为一行,包含一个已经规范书写的复合单词。

样例输入 Sample Input

 

ten-----year---old

样例输出 Sample Output

 

ten-year-old


0
已采纳
郑怡翔
郑怡翔
初级天翼
初级天翼

先输入第1个字符,然后判断是否是连字符:

cout<<last;//第一个
    while(cin>>c)//输入后面的
    {
        if(c!='-' || c=='-' && last!='-') cout<<c;//判断输出
            last=c;
    }

last和c要定义char型

0
徐熙晨
徐熙晨
新手光能
新手光能
for(int i=0;i<l;i++)  
    if(a[i-1]=='-'&&a[i]=='-')
        a[i-1]='1';
for(int i=0;i<l;i++)  
    if(a[i]!='1')
        cout<<a[i];

核心

0
阮俊雄
阮俊雄
新手光能
新手光能

思路:先输入一个字符串,然后一个个遍历,找寻连字符,如果是连字符且后面一个字符也是连字符,删去此连字符;如果该字符是连字符但是后面一个字符不是连字符,则不删去。最后输出该字符串。

阮俊雄在2018-07-25 19:21:07追加了内容

求采纳!!!

0
吴知玄
吴知玄
新手光能
新手光能

思路:

定义、输入后,

循环中判断,上一位和这一位是不是都等于连字符,如果是,就把上一位赋给-1,

最后循环,判断哪些数是不是-1,不是则输出。

求采纳!

0
陈泉宏
陈泉宏
高级守护
高级守护

找到不是‘—’就输出,如果遇到‘—’,判断上一个是否是‘—’如果是,不输出

0
黄昊轩
黄昊轩
新手守护
新手守护
头文件是string
定义k时要把这个字符串赋值为0

核心代码

for(i=0;i<n;i++)
    {
        if(s[pos]=='-' && s[pos+1]=='-')
        {
            s=s.erase(pos,1);
        }
        else
        {
            pos++;
        }
    }

 

0
我要回答