我试图将指针数组设置为类Tran中的char数组,但是它仅应用字符串的第一个字母。我尝试了许多其他方法,但是无法使整个字符串都成为名字。
编辑:名称是一个私有变量
char name[MAX_NAME + 1];
尝试使用输出 cout << name << endl;
输入为:
setTran("Birth Tran", 1);
帮助将不胜感激,谢谢你
namee[0] == NULL name[0] = NULL;
这些是错误。NULL
用于指针。name[0]
还有namee[0]
是一个char
。在某些系统上,它可以工作(通过工作,我的意思是将第一个字符分配为空终止符),因为0既是空指针常量又是整数文字,因此可以转换为char
,并且NULL
可以定义为0。NULL
也可以定义为nullptr
在这种情况下程序格式错误。
使用name[0] = '\0'
代替。
name[0] = *namee;
但是,它仅应用字符串的第一个字母。
好吧,您只分配了第一个字符,所以这是可以预期的。
如果要复制整个字符串,则需要分配所有字符。可以通过循环来实现。虽然有一些用于复制字符串的标准函数;您可以使用std::strncpy
。
也就是说,恒定长度的数组通常存在问题,因为很难正确预测最大所需大小。std::string
是更可靠的选择。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句