【解決方法】C++ の文字列から ‘\’ を ‘\\’ に置き換えます

プログラミングQA


どうもありがとう..誰でも私を助けることができます. 文字列から文字を置き換えます。

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つ上に!

立ち止まって、自分が何をしようとしているのかを正確に考えてみてください。ここで何が起こっているのかよくわかっていないと思います。

コメント

タイトルとURLをコピーしました