如果我错了,请纠正我,但您似乎正在尝试读取如下输入:
PUT key value
从命令行并将这些键/值对保存在您的数组中
char keys[25][50];
char values[25][50];
如果这就是你想要完成的:
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main(){
int i = 0;
char keys[25][50];
char values[25][50];
char buf[256], *bufcopy;
do{
fgets(buf, 255, stdin);
bufcopy = strtok(buf, " ");
if (strcmp(bufcopy, "PUT") == 0) {
bufcopy = strtok(NULL, " ");
strcpy(keys[i], bufcopy);
bufcopy = strtok(NULL, " ");
strcpy(values[i], bufcopy);
printf("server received pair %d - Key: %s\tValue: %s\n", i, keys[i], values[i]);
i++;
}
}while(i<25);
return 0;
}
这将读入输入,直到您到达键/值数组的末尾并将它们保存到您的数组中。您必须连续调用 strtok() 以在每个空格处拆分并获取指向下一个单词的指针(直到下一个空格)。有关其工作原理的更多信息,请查看strtok()的参考。