在C++

2010-02-23 47 views
3

雙引號的字符串如何在雙引號字符串轉換字符串空間。 例如: 我得到的字符串在C++

c:\program files\abc.bat 

我想這個字符串轉換爲「c:\program files\abc.bat」但前提是字符串中的空間。

+0

它是一個'的std :: string'或'爲const char *'? – kennytm 2010-02-23 12:46:54

+0

它的std :: string – Avinash 2010-02-23 12:47:27

+0

你有什麼需要發生,如果已經有一個字符串中使用雙引號?這取決於是否有這樣的不同是字符串中 – dave4420 2010-02-23 12:55:00

回答

5

假設STL字符串s包含要檢查是否有空間的字符串:

if (s.find(' ') != std::string::npos) 
{ 
    s = '"' + s + '"'; 
} 
+0

使用''「而不是'」\「」'會更高效嗎? – 2010-02-23 13:06:31

+0

是的,會的。我已經編輯了答案,謝謝。 – 2010-02-23 13:33:37

2

搜索空格。如果發現添加\」,以正面和字符串的結尾這將是一個逃脫引號

+0

空間?封閉在字符串之前」,搜索現有的‘並以\前綴他們。這將處理字符串’內。 – 2010-02-23 18:19:45

0
std::string str = get_your_input_somehow(); 

if (str.find(" ") != std::string::npos) { 
    str = "\"" + str + "\""; 
} 
+0

難道不該'str.find(」「)!=的std :: string ::非營利組織)'? – Manuel 2010-02-23 12:51:12

+0

如果在開始處有空白,則返回0。 – kennytm 2010-02-23 12:51:33

+0

在任何情況下使用int作爲布爾時沒有好的編程。 – 2010-02-23 12:52:39