我想从cin.get()
获取一个字符并将其添加到数组字符中。我使用strcat但单个字符有错误。如果你知道,请帮助我。谢谢你的所有答案。
void main (void)
{
char e[80]="hi";
char c;
cin.get(c);
strcat(e,c);
cout << "e: " << e << endl;
getch();
}
这是我想要执行此操作的代码的一部分。
答案 0 :(得分:4)
stncat()
连接两个字符串,方法签名如下所示,
char * strncat ( char * destination, const char * source, size_t num );
但是你试图连接一个不对的char!
当您使用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
答案 1 :(得分:1)
将strcat(e,c)更改为strncat(e,&amp; c,1)
答案 2 :(得分:0)
char s[] = { c, 0 };
strcat(e, s);
但是,请使用std::string
:
string e="hi";
char c;
cin.get(c);
e += c;
cout << "e: " << e << endl;
答案 3 :(得分:0)
对您的代码稍作修改即可。
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;