【发布时间】:2013-11-05 05:16:50
【问题描述】:
所以我已经这样声明了我的字符串 键[25][50];值[25][50];
我有一个先前的字符串,我将其拆分为空格,然后将值分别存储到键/值数组中。我想当我想将一个字符串分配给数组中的一个位置然后通过 printf() 打印出该值时,问题就来了;它始终为空。我在分配字符串或打印方面做错了吗?
strcpy(buff, buf);
bufcopy = strtok(buff, " ");
if (strcmp(job, "PUT") == 0) {
//keys[i] = bufcopy;
strcpy(keys[i], bufcopy);
printf("server received: %s", keys[i]);
i++;
}
【问题讨论】:
-
printf("bufcopy: %s", bufcopy);会显示什么? -
它显示了正确的字符串。由于某种原因,复制字符串会导致它为 null 或其他值..
-
发布真实代码。您是说它在 this exact 代码中显示“正确的字符串”?如:
printf("bufcopy: %s", bufcopy);正上方printf("server received: %s", keys[i]);??发布一个展示您行为的完整示例。假设声明(不在代码中并且在问题中没有 typed )是正确的,那么唯一合乎逻辑的事情就是buff被声明为指针而不是缓冲区,并且再次,如果没有 real 代码,我也无法得出结论。
标签: c string variable-assignment cstring