C++ C++;:给字符数组赋值

C++ C++;:给字符数组赋值,c++,concatenation,arrays,C++,Concatenation,Arrays,所以我有这个: char uloginName[] = "derp"; char mew[33] = "home/home/" << uloginName << "\0"; char-uloginName[]=“derp”; char-mew[33]=“home/home/”使用。使用 您可以在字符数组上使用strcat,只要有足够的空间并且它们以零字节结尾 在字符数组中,可以使用 STRCAT/CODE>,只要有足够的空间,它们以零字节结束。 < P>看起来像是在寻找

所以我有这个:

char uloginName[] = "derp";
char mew[33] = "home/home/" << uloginName << "\0";
char-uloginName[]=“derp”;
char-mew[33]=“home/home/”使用。

使用

您可以在字符数组上使用
strcat
,只要有足够的空间并且它们以零字节结尾


在字符数组中,可以使用<代码> STRCAT/CODE>,只要有足够的空间,它们以零字节结束。

< P>看起来像是在寻找,这是C++中处理字符串的多用途和更少出错的方式。代码> >(<代码)>代码> STRCATA//COD>及其亲属是C< C++ >代码>的继承者,在C++中应谨慎使用。
char uloginName[] = "derp";
std::ostringstream mew;
mew << "home/home/" << uloginName;
char-uloginName[]=“derp”;
std::ostringstream mew;

MeW

看起来像你正在寻找的,这是一个通用的,而且更容易出错的处理C++中字符串的方法。代码> >(<代码)>代码> STRCATA//COD>及其亲属是C< C++ >代码>的继承者,在C++中应谨慎使用。

char uloginName[] = "derp";
std::ostringstream mew;
mew << "home/home/" << uloginName;
char-uloginName[]=“derp”;
std::ostringstream mew;

那么我应该说
charuloginname[]=“derp\0”相反?这是多余的。编写
“derp”
时,您已经指定了一个带有零终止符的C样式字符串。如果您打印
sizeof(uloginName)
,您将看到它已经是5了。如果您愿意,也可以执行
{'d'、'e'、'r'、'p'、'\0'}
。另外,谢谢您,我认为
strcat()
仅适用于字符串。我现在正在使用char类型,我使用的是
strncat()
。如果我错了,请纠正我。您的字符数组包含C样式的字符串。“字符串”只是表示它以零字节结尾。除非您单独跟踪长度,否则您也必须使用它们的字符串这一事实——否则您如何知道要使用多少字节?那么我应该说
char-uloginName[]=“derp\0”相反?这是多余的。编写
“derp”
时,您已经指定了一个带有零终止符的C样式字符串。如果您打印
sizeof(uloginName)
,您将看到它已经是5了。如果您愿意,也可以执行
{'d'、'e'、'r'、'p'、'\0'}
。另外,谢谢您,我认为
strcat()
仅适用于字符串。我现在正在使用char类型,我使用的是
strncat()
。如果我错了,请纠正我。您的字符数组包含C样式的字符串。“字符串”只是表示它以零字节结尾。除非您单独跟踪长度,否则您必须使用它们的字符串这一事实——否则您如何知道要使用多少字节?
“\0”
是等效的;您应该使用
mew[upper\u bound]='\0'
以null结尾。您有几个答案告诉您使用strcat/strncat,它们是正确的。但是他们没有解释为什么你所做的会产生错误。您将整型“char”误认为是定义Thank@CareyGregory的类,这确实有帮助。
“\0”
是等价的;您应该使用
mew[upper\u bound]='\0'
以null结尾。您有几个答案告诉您使用strcat/strncat,它们是正确的。但是他们没有解释为什么你所做的会产生错误。您将整型“char”误认为是定义Thanke@CareyGregory的类,这确实很有帮助。