2012-02-19 46 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