2012-02-19 81 views
1

我有一個字符串變量s,我有一個地圖數據結構(帶有字符串鍵)m如何將char轉換爲C++中的字符串?

我想檢查s中的每個字母是否存在於m,所以我做m.containsKey(s[i])

因爲,地圖中的containsKey函數需要字符串參數,我得到以下錯誤:

invalid conversion from char to const char* 

任何想法,就如何一個字符轉換爲字符串數據類型?

回答

5

以子串,而不是索引。

s.substr(i, 1) 
+0

加快5秒! – nijansen 2012-02-19 05:48:06

3

另一種方法是:

#include <sstream> 
#include <string> 
stringstream ss; 
string s; 
char c = 'a'; 
ss << c; 
ss >> s; 
+6

這也許會是在最昂貴的方式爲一個字符轉換爲字符串的運行。 – 2012-02-19 05:48:43

0

你可以做s.substr(i, 1)。但是如果你在地圖上只有char s,我更喜歡上面的答案。

0
string str = "test"; 
anyFunction(str[x]); 

[]操作符提供了一個字符,如果任何函數需要字符串,那麼肯定會出現錯誤。但你總是可以嘗試這種偷偷摸摸的轉換:

string str = "test"; 
char c = str[x]; 
string temp = c; 
anyFunction(temp); 
1
string s=""; 
char a; 

s+=a; 

s is now a string of char a