为什么数组中存储了额外的数据
Why there is an extra data being store in the array?
我正在尝试为我的作业编写C++代码。
发生的事情是我必须接受来自 main 的一些数据的部分之一,在我的函数中,我必须获取由 main 发送的数组的第一部分并放入函数中的数组中。
for (int i = 0; i <= strlen(main) && exit == 0; i++){
if (main[i] != ';' || main[i] != ' '){
keyword[i] = data[i];
if(main[i] == ';' || main[i] == ' ')
exit = 1;
}
这是名为 main = "Hello World;Yes;No;Okay;Good Bye",
的数组中的代码
所以发生的情况是我想将该Hello World
存储在名为 keyword
的数组中,问题是一旦我打印关键字字符串,我就会在单词 Hello World
之后看到额外的数据
这是我在打印件上的内容
Your keyword-----> 'Hello World;? '
Actual keyword---> 'Hello World'
我上面的逻辑使用有什么问题吗?
谢谢
i <= strlen(main)
需要i < strlen(main)
,并且不需要在if
中进行额外的终止字符检查。还要确保keyword
在复制必要的数据后以空终止(