2012-02-19 5 views
1

У меня есть строковая переменная s, и у меня есть структура данных карты (со строковыми ключами) m.Как преобразовать символ в строку в C++?

Я хочу проверить, есть ли каждая буква в s в m, поэтому я делаю m.containsKey(s[i]).

Поскольку функция карта ContainsKey ожидает строковый аргумент, я получаю следующее сообщение об ошибке:

invalid conversion from char to const char* 

Любые идеи, о том, как преобразовать символ в строку типа данных?

ответ

5

Возьмите подстроку вместо индексации.

s.substr(i, 1) 
+0

+1 за 5 секунд быстрее! – nijansen

3

Другой метод:

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

Это как раз может быть в управлении на самый дорогой способ для преобразования символа в строку. –

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 
Смежные вопросы