2010-12-03 139 views
3

我的程序獲得了以下代碼的幫助。我正在工作,謝謝你'paxdiablo'。它仍然在結果中顯示'\'字符。我該如何解決它? (不知道如何回答「paxdiablo」到SYA感謝C++簡介:自學

if (strchr (",.();:-\"&?%$![]^@~`{}_<>/#*_+=", curChar) != NULL)//new change 
{ 
    paragraph.erase(subscript, 1); 
    numWords-=1; 
} 
else 
    subscript+=1; 

} 
+0

抱歉拼寫錯誤。我試圖向字符添加'\',但沒有奏效。 – Luckwhy 2010-12-03 22:30:09

+0

也許你應該發佈更多的代碼,我無法理解這一點。 – Puppy 2010-12-03 22:33:26

回答

1

如果要刪除「\」爲好,要做到這一點:

if (strchr (",.();:-\\\"&?%$![]^@~`{}_<>/#*_+=", curChar) != NULL) 

的原因是原線有\"這實在是逃避"。要添加一個實際\你需要做的\\逃吧。

5

不是C專家,但儘量逃避\

if (strchr ("\\,.();:-\"&?%$![]^@~`{}_<>/#*_+=", curChar) != NULL)//new change 
1

\是一個轉義字符(它逃避了「)。將\\添加到您的字符串,它應該工作。

if (strchr (",.();:-\"&?%$![]^@~`{}_<>/#*_+=\\", curChar) != NULL) 
1

嘗試逃脫它:\\,而不是僅僅\

2

見你對陣的字符串是如何在它\"

這是一個轉義序列。它告訴C++編譯器,「我希望"符號位於此字符串文字中」。你必須用這種特殊的方式來說這個,因爲通常,"標誌着字符串的結尾。

\字符是特殊的,因爲它啓動所有這些轉義序列。所以如果你想讓它出現在字符串中,你也必須使用轉義序列。否則,編譯器認爲你正在開始一些其他轉義序列。

\的轉義序列很奇怪,\\