【发布时间】:2012-04-27 01:01:16
【问题描述】:
我知道如何输入文本并跳过空格,但是当它是一个字符串时呢?在代码中,我得到一个类似
的字符串asdasd asdads asdasd asdasd
所以我需要删除其中的所有空间。那么有什么办法可以写skipws(string_text);吗?
【问题讨论】:
-
“删除”是什么意思?你想构造一个拼接出空格的字符串,还是在迭代它时忽略它们?
我知道如何输入文本并跳过空格,但是当它是一个字符串时呢?在代码中,我得到一个类似
的字符串asdasd asdads asdasd asdasd
所以我需要删除其中的所有空间。那么有什么办法可以写skipws(string_text);吗?
【问题讨论】:
如果你想构造一个值为asdasdasdadsasdasdasdasd的字符串,你可以使用remove-erase idiom:
str.erase( std::remove( str.begin(), str.end(), ' ' ), str.end() );
或使用来自<ctype.h> 的::isspace,
str.erase( std::remove_if( str.begin(), str.end(), ::isspace ), str.end() );
【讨论】:
没有通用的方法。您可以串联使用查找/替换来执行此操作,或者您可以使用stringstream(使用您的输入字符串初始化)并使用>> 来获取没有空格的单词并将结果连接到(另一个/相同的)字符串中
【讨论】: