strcat が問題を引き起こしている次のコードがあります。
char* tokens = strtok(buf, "+");
int n = 0;
int type = 0;
char* name = "";
char* lifetime = "";
char* data = "";
for(n=0; tokens!=NULL; n++) {
if(n==0)
type = atoi(tokens);
if(n==1)
name = tokens;
if(n == 2) {
if(type == 1)
lifetime = tokens;
else
data = tokens;
}
if(n == 3)
lifetime = tokens;
tokens = strtok(NULL, "+");
}
if(type == 2) {
printf("Received Data with Name: %s, Data: \"%s\" and lifetime: %s seconds\n", name, data, lifetime);
strncat(name, "+", 1);
printf("Data: %s\n", data);
strncat(name, data, strlen(data));
printf("Full Name: %s\n", name);
}
名前、データ、および有効期間を出力する行では、すべてが正しく出力されます。data
しかし、strcat 操作の後、値が空であることがわかりました。data
debug printf ステートメントを追加した後、の直後に value が空になることがわかりましたstrncat(name,"+",1)
。その理由は何ですか?助けてください。