2012-04-16 2 views
-2

Я пытаюсь решить проблему this, и я получаю такую ​​ошибку. [Неверное преобразование из 'char' в 'const char'], но я не могу понять, как его решить. Вот строки, в которых проблема:C++ Неверное преобразование из

Declarations: 
string alp("ABCDEFGHIJKLMNOPQRSTUVWXYZ"); 
string formatted; 
char partoftext[20]; 
size_t found; 

found = text.copy(partoftext,2,0); 
partoftext[found] = '\0'; 
a = atoi(partoftext); 
formatted.append(alp[a]); 

...  

и проблема заключается в этой строке кода:

formatted.append(alp[a]); 

спасибо.

+2

не дают достаточно контекста. что отформатировано? Какая ошибка? что такое? –

+0

как отформатирован 'formatted'? – dschulz

+0

Я отредактировал. Извините ребята. – ddacot

ответ

4

От: HTTP: //www.cplusplus.com/reference/string/string/append/

formatted.append(1, alp[a]); 

/* 
string& append (const string& str); 
string& append (const string& str, size_t pos, size_t n); 
string& append (const char* s, size_t n); 
string& append (const char* s); 
string& append (size_t n, char c); 
*/ 
+0

Спасибо, вот и все! теперь это работает. – ddacot

+0

еще один вопрос, почему он показывает нули вместо букв? http://ideone.com/92d5F – ddacot

+0

Это не 0, а «O». Также вы можете использовать supstr вместо copy и stringstream вместо atoi-> или взглянуть на boost :: lexical_cast http://stackoverflow.com/questions/8065413/stdlexical-cast-is-there-such-a-thing – AlexTheo

0

Если мое предположение верно (и это предположение, потому что вы не указали, что ошибка на самом деле), попробуйте:

formatted.append(alp, a, 1);

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