2015-02-03 2 views
0

Я знаю, что в StackOverflow есть много таких вопросов, но я не смог найти какую-либо помощь в решении моего дела. Всякий раз, когда я пытаюсь сделать что-то вроде этого:C++: Как преобразовать 'const char *' в char

// str = some string or char array 

// some magic to get around fpermissive errors 
stringstream convert; 
convert << str; 
// capture the stream's temporary string 
const string store = convert.str(); 
// get a manageable array 
const char* temp = store.c_str(); 

, а затем попытаться сделать что-то вроде atoi(temp[0]), я получаю классическую ошибку преобразования, что символ не может быть преобразован в сопзЬ символ. В документации для atoi и многих других функций const char является обязательным параметром. Как можно отправить символ, если есть только константа? Извлекает ли char в определенной позиции auto-cast для char?

+0

Как насчет 'atoi (temp)' вместо 'atoi (temp [0])'? –

+2

'atoi (temp [0])' неверно, потому что 'atoi' ожидает' char * '(указатель на char), но' temp [0] '- это всего лишь один символ' char'. – user3386109

+6

«некоторая магия, чтобы обойти ошибки спермы» ... это почти наверняка ошибки. Исправьте их, а не пытайтесь обойти их. –

ответ

0

Я не уверен, что это то, что вызывает ошибку, но atoi принимает в качестве параметра не символ, а указатель на один. Таким образом, вместо atoi (температура [0])

попробовать этот

atoi(&temp[0]) 

как указатель.

Смежные вопросы