如何在c ++中将一个字符strcat到数组字符

时间:2014-12-17 10:05:14

标签: c++ arrays char character strcat

我想从cin.get()获取一个字符并将其添加到数组字符中。我使用strcat但单个字符有错误。如果你知道,请帮助我。谢谢你的所有答案。

void main (void)
{
 char e[80]="hi";
 char c;
 cin.get(c);
 strcat(e,c);
 cout << "e: " << e << endl;
 getch();
}

这是我想要执行此操作的代码的一部分。

4 个答案:

答案 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;