当我运行示例代码时,wordLength为7(因此输出7).但是我的char数组最终得到了一些非常奇怪的字符.
wordLength = word.length();
cout << wordLength;
char * wordchar = new char[wordLength]; //new char[7]; ??
for (int i = 0; i < word.length(); i++) //0-6 = 7
{
wordchar[i] = 'a';
}
cout << wordchar;
Run Code Online (Sandbox Code Playgroud)
输出:7aaaaaaa²²²²||||||||||||||||||||||||||||||||||
期望的输出是:aaaaaaa ......背后的垃圾是什么?那是怎么结束的呢?
你应该\0在最后添加wordchar.
char * wordchar = new char[wordLength +1];
//add chars as you have done
wordchar[wordLength] = `\0`
Run Code Online (Sandbox Code Playgroud)
原因是C字符串是空终止的.
| 归档时间: |
|
| 查看次数: |
5750 次 |
| 最近记录: |