[ad_1]
どうもありがとう..誰でも私を助けることができます. 文字列から文字を置き換えます。
replace '\' with '\\' from a string in c++
私が試したこと:
string replace(string s, char c1, char c2) { int l = s.length(); // loop to traverse in the string for (int i = 0; i < l; i++) { // check for c1 and replace if (s[i] == c1) s[i] = c2; else if (s[i] == c2) s[i] = c1; } return s; }
しかし、私はそれを行うことができません….助けてください
解決策 1
いいえ、できません – ‘\\’ は文字ではありません – それも ‘\’ も違います!
C++ では、バックスラッシュは特別な値です。 escape character
– これが、改行のような「特別な値」であることをシステムに示します: ‘\n’、二重引用符: ‘\”‘、単一引用符: ‘\”、または他のいくつかのいずれか。問題を残す: バックスラッシュの入力方法は? シンプル: エスケープする: ‘\\’
したがって、文字列を記述するときは、特殊文字にエスケープを使用する必要があります。
C++
"A backslash: \"\\\"";
印刷された場合、次のような文字列です。
A backslash: "\"
そのため、「’\’ を ‘\\’ に置き換える」ことは意味がありません。文字列に既に 1 つのバックスラッシュ文字があり、2 つの本物のバックスラッシュ文字が必要な場合は、単に文字を置き換えることはできません。置き換えたい値は 2 文字なので、すべての文字を iots に移動する必要があります。 部屋を作るためにも1つ上に!
立ち止まって、自分が何をしようとしているのかを正確に考えてみてください。ここで何が起こっているのかよくわかっていないと思います。
[ad_2]
コメント