回答
沒有單一的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