回答
没有单一的C++字符串的方法来做到这一点 - 你需要一个循环:
// C++ replace all
#include <cctype.h>
...
string string replaceChar(string str, char new_char) {
for (int i = 0; i < str.length(); ++i) {
if (isspace((unsigned char)str[i]))
str[i] = new_char;
}
return str;
}
如果你碰巧有一个空终止的C字符串,你可以这样做:
/* C replace all */
#include <ctype.h>
...
char *replaceChar (char *str, char new_char) {
char *p = str;
unsigned char c;
while (c = *p) {
if (isspace(c))
*p = new_char;
p++;
}
return str;
}
附录:广义的解决方案中使用“isspace为()”:替换所有“空白”字符。
除了'std :: replace',没有单个C++字符串方法? – 2015-02-10 00:22:46
此外,这只替换一个字符,而不是所有空白 – 2015-02-10 00:23:15
@Mooing Duck - std :: string :: repla ce不会“全部取代”,是不是“? – FoggyDay 2015-02-10 00:25:40
蛮力方法:
std::string text = "Is the economy getting worse?";
const unsigned int length = text.length();
for (unsigned int i = 0; i < length; ++i)
{
if (text[i] == ' ')
{
text[i] = '_';
}
}
只有头<string>
是必需的。
最明显的方法似乎是:
for (size_t i=0; i<s.size(); i++)
if (isspace((unsigned char)s[i]))
s[i] = '_';
注意几个要点:
- 你想用
isspace
,不能直接比较的空格字符。如果你这样做,你会错过标签等东西。 - 在传递到
isspace
之前,您想将角色投射到unsigned char
。否则,它可能(并且通常会)在基本ASCII字符集之外的字符(例如带有重音/变音符号的字母)方面存在问题。
- 1. 如何用_(下划线)替换字符串中的空格?
- 2. Netezza用下划线替换空白
- 3. 替换字符串中的下划线
- 4. 从字符串中替换下划线
- 5. 如何用下划线替换字符串的字母?
- 6. 用javascript中的下划线字符替换所有出现的点号字符
- 7. 用匹配组中的下划线替换空格字符?
- 8. htaccess用连字符替换下划线
- 9. 下划线代替Vim中的空白
- 10. 如何使用Perl脚本替换字符串中的下划线?
- 11. 替换字符串以下划线并使用awk或者sed
- 12. AWK用下划线用相同的字符串替换字符串
- 13. 用C语言替换空白字符
- 14. 空白被用下划线
- 15. 如何替换字符串的下划线在HAML
- 16. 如何用空字符串替换“ - ”的出现?
- 17. 在字符串中使用下划线
- 18. 用字符串中的空白字符替换“0”
- 19. 如何使用ipython替换dir下划线的空格?
- 20. libreoffice calc用下划线替换空格
- 21. $ {file%/ *}用下划线替换空格
- 22. CMD用下划线替换空格
- 23. 用下划线替换空格
- 24. 下划线使用iText的字符串
- 25. 如何用目标c中的短划线替换空格?
- 26. 如何计算C++中的字符串中出现的空白字符
- 27. 在C中替换/更改空白或空字符串值#
- 28. 如何在c#中替换一些字符黑白字符串?
- 29. 查找字符串的出现次数并使用C#替换
- 30. 如何用空白替换下列字符?
什么库? – genisage 2015-02-10 00:10:17
您没有使用帖子预览。 :(你有没有考虑搜索现有的问题和研究材料,用字符串中的其他字符替换字符? – 2015-02-10 00:10:18
这将是一个确切的http://stackoverflow.com/q/2896600/560648重复,如果它不是为了什么看起来像对你可能使用什么标题完全是任意的限制家庭作业?你有没有尝试过任何东西? – 2015-02-10 00:11:55