'\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;
}
}
基本的に、たとえばこのようにメインから送信されるデータ
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');
}
}