469826336 发表于 2018-10-9 11:37:44

c++如何将标点符号去除后输出字符串剩余的部分

本帖最后由 469826336 于 2018-10-9 11:39 编辑

RT,萌新的想法貌似行不通,有大神有其他想法吗
#include<iostream>
#include<string>
using namespace std;
int main(){
        string a("abc,.d'e");
       
        for(decltype(a.size())b=0;b<a.size();++b){
                if(ispunct(a)){
                        a='';}
        }
        cout<<a<<endl;
return 0;
}

claws0n 发表于 2018-10-9 12:00:28

引号里面要空格

469826336 发表于 2018-10-9 13:10:28

claws0n 发表于 2018-10-9 12:00
引号里面要空格

http://m.qpic.cn/psb?/V13DnKFA2b7guU/pXoiWZ85XBHo.IfBSR8zdsKUAcrGbri.qJnvdta78g8!/b/dFYBAAAAAAAA&bo=sAaYAwAAAAADBw8!&rf=viewer_4
这个中间多出空格了
http://m.qpic.cn/psb?/V13DnKFA2b7guU/2x.0Db0huycI194EkPE83TnqJdTGqSgdBPOf.cMmEEA!/b/dDQBAAAAAAAA&bo=sAaYAwAAAAADJy8!&rf=viewer_4
得要这样子的

人造人 发表于 2018-10-9 13:41:30

#include <iostream>
#include <string>
#include <cctype>

int main()
{
        std::string string("abc,.d'e");

        for(auto iter = string.begin(); iter != string.end(); ++iter)
        {
                if(ispunct(*iter))
                {
                        iter = string.erase(iter);
                        --iter;
                }
        }

        std::cout << string << std::endl;
        return 0;
}
页: [1]
查看完整版本: c++如何将标点符号去除后输出字符串剩余的部分