| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1130 人关注过本帖
标题:求助string对象的输入问题!!
只看楼主 加入收藏
ppt060984
Rank: 1
来 自:广东深圳
等 级:新手上路
帖 子:342
专家分:0
注 册:2008-11-6
结帖率:100%
收藏
 问题点数:0 回复次数:3 
求助string对象的输入问题!!
请各位大大帮我看看。
题目:编程实现,从string对象中去掉标点符号。要求输入到程序的字符串必须含有标点,输出结果是去掉标点后的string对象。
我用getline或cin命令读入string对象时,不管是否含有标点,总是判断无标点。
若直接给s初始化,则程序一切正常。
这是怎么回事啊??是不是用getline或cin读入时,必须用ctrl+Z结束输入的关系啊??该怎么改啊??

主程序如下:
int main()
{
    string s;
    
    cout << "Please inout a string s: "<< endl;
    while (getline(cin,s))
        cout << s <<endl;
    
    string::size_type punct_cnt = 0;
    for (string::size_type index = 0; index != s.size(); ++index)  //检验是否含标点符号
    {
        if (ispunct(s[index]))
        ++punct_cnt;
    }
    cout <<"punct_cnt = " << punct_cnt << endl;
    if ( punct_cnt == 0)       //判断,若无标点输出错误信息;有标点,则去掉标点,并输出结果
    {
        cout << "Error! There is no punctation in the string."
            << endl;
    }
    else
    {
        cout << "Delete all punctations, and then the string s is:"<< endl;
        for (string::size_type index = 0; index != s.size(); ++index)
        {
        if (ispunct(s[index]))
            s[index] = ' ';
        }
        cout << s <<endl;
    }

    return 0;
}
搜索更多相关主题的帖子: string 对象 输入 
2008-11-06 18:31
zqm0209
Rank: 1
等 级:新手上路
帖 子:142
专家分:0
注 册:2008-1-2
收藏
得分:0 
while (getline(cin,s)) 到return 0;之间的语句都加入大括号内,作为while的循环语句。
(用getline判断读完你输入的语句后还要再读入一行判断是否输入完毕,s被置空)

[[it] 本帖最后由 zqm0209 于 2008-11-7 21:48 编辑 [/it]]
2008-11-07 20:07
小毒
Rank: 2
等 级:新手上路
威 望:3
帖 子:1274
专家分:0
注 册:2007-9-11
收藏
得分:0 
while( getline( cin, s ) )
cout<<s<<endl;
读入一段字符串后,此时s是输入的字符串,
然后输出字符串,
接着循环,为了退出循环,输入 Ctrl+Z ,此时 s 被置空

按照LS的方法就可以解决了

平凡人始终平凡。堕落成魔鬼的,只有天使
2008-11-07 22:11
ppt060984
Rank: 1
来 自:广东深圳
等 级:新手上路
帖 子:342
专家分:0
注 册:2008-11-6
收藏
得分:0 
明白了,谢谢两位!
不过,我试了一下,不用while循环,直接用getline(cin,s),再cout<<s<<endl;就可以了,哈哈
2008-11-08 13:17
快速回复:求助string对象的输入问题!!
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.015080 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved