Как я могу strcat один символ для массива символов в C++
Я хочу получить одного персонажа из cin.get()
и добавьте его в массив символов. Я использую strcat, но один символ имеет ошибку. Пожалуйста, помогите мне, если вы знаете. спасибо за все ответы.
void main (void)
{
char e[80]="hi";
char c;
cin.get(c);
strcat(e,c);
cout << "e: " << e << endl;
getch();
}
Это часть моего кода, который я хочу сделать.
4 ответа
Решение
stncat()
объединяет две строки, сигнатура метода выглядит следующим образом,
char * strncat ( char * destination, const char * source, size_t num );
но вы пытаетесь объединить символ, который не является правильным!
Поскольку вы используете C++, это безопасно и легко сделать в стиле C++, а не в стиле C.
std::string cAsStr(c); // Make the string
e += aAsStr; // + operator does the concatenation
Если вы отчаянно хотите сделать это в стиле C, используйте:
char cAsStr[] = { c, '\0' }; // Making a C-style string
strcat(e, cAsStr); // Concatenate
Небольшое изменение в вашем коде сделает это.
char e[80]="hi";
char c[2] = {0}; // This is made as an array of size 2
cin.get(c[0]); // Character is read into the first position.
strcat(e,c);
cout << "e: " << e << endl;
char s[] = { c, 0 };
strcat(e, s);
Но, пожалуйста, просто используйте std::string
:
string e="hi";
char c;
cin.get(c);
e += c;
cout << "e: " << e << endl;