我正在尝试将数据从从主发送到本地函数中的另一个字符数组中复制,即使我'\0'
在字符串末尾添加了垃圾字符,我也总是看到垃圾字符。
这是我的部分代码。
for (int i = 0; i < strlen(main) ; i++){
if (main[i] != ';'){
local[i] = main[i]; // Copy the characters until `;` isn't found
} else {
local[i] = '\0' ; // If `;` found, null terminate the copied destination.
break;
}
}
所以基本上是从 main 发送的数据,例如这样
look;can;you;see;me
My Local-----> 'look??y??>c?Lw?T?w??>c?2+a?'
Actual data in main---> 'look'
正如您从上面的示例中看到的那样,我试图只获取第一个单词,但我总是得到垃圾,我不知道为什么?
编辑:
这几乎是 100% 确定导致我出现问题的全部功能。
void myFunction(char main[ ]){
for (int i = 0; i < strlen(main) ; i++){
if (main[i] != ';'){
local[i] = main[i]; // Copy the characters until `;` isn't found
} else {
local[i] = '\0' ; // If `;` found, null terminate the copied destination.
break;
}
}
if(main[i] != '\0'){
int col = 0, row = 0;
do {
if(main[i] == ';' || main[i] == '\0') {
sending[row++][col] = '\0';
col = 0;
} else {
sending[row][col++] = main[i];
}
} while(main[i++] != '\0');
}
}