2013-03-25 2 views
0

Как преобразовать строку в char?String to char - C++

Я уже в Google и не нашел ответа на ситуацию, в которой я нахожусь. Действительно, я пытаюсь преобразовать int в char, но мой компилятор не поддерживает функцию to_string, поэтому я решил конвертировать из int в строку, а затем строку в char.

Я использую char [] [], чтобы хранить целые числа и символы.

stringstream ss; 
ss << j; // j is the integer 
string s(ss.str()); 
ascii_text[1][i] = (char)s; 

EDIT:

Я работаю с ASCII-символов.

Это то, что я пытаюсь сделать. int a = 10; -> строка s = "10"; -> char c = '10';

Буду рад, если бы нашел способ конвертировать int в char напрямую.

+0

вы думаете, это до конца? – Rapptz

+0

http://stackoverflow.com/questions/9655202/how-to-convert-integer-to-string-in-c – Dave

+0

@Rapptz Да. Почему вы спрашиваете? –

ответ

0

Вы должны быть в состоянии просто сделать

int j = 3; 
char ch; 
stringstream ss; 
ss << j; 
ss >> ch; 
+0

Если строка «61», она возвращает только «6». –

+0

В моем коде нет строки. Он пытается преобразовать int, нет причин для использования строки. – DiegoNolan

3

Если я правильно вас понял, то все, что вам нужно сделать, это получить от целого цифры (0-9) в ASCII-цифры ('0' '9')? В этом случае char(j)+'0' будет делать.

+0

Также нужно добавить десятки мест http://stackoverflow.com/a/7022827/195488, если вы собираетесь в int – 2013-03-25 20:16:10

+0

@ 0A0D Что значит? – Cubic

+0

@ Кубик Я уже пробовал это, и у меня есть символы ASCII, например, 20 будет давать пробел вместо «20». –

2

Как преобразовать строку в обугливается?

Хорошо. Если вы имеете в виду char*, то std::string класс имеет метод c_str():

std::string myString = "hello"; 
const char* myStr = myString.c_str(); 

char имеет размер 1 байт, так что вы не можете поместить любую строку в нем, если эта строка не имеет длину 1. вы можете однако получить символ в определенной позиции в строке:

std::string str = "hi bro"; 
char c = str[0]; // This will be equal to 'h' 
+2

'std :: string :: c_str' возвращает' const char * '. –

+0

Вы правы. Ред. –