用字符串的一部分填充二维数组

我想要将我打破的字符串部分输入到二维数组中,例如:String:“one day”数组中的结果:Col1:一个Col2:day

问题是,如何用第1列的第二个变量result2和第2列的result填充数组?

这是我的代码到目前为止(你可以看到我有一个单独的历史数组和一个单独的数组用于保存用户输入的部分):

 #include  #include  #include  int main (int argc, char *argv[]) { int i=0; int j=0; int k=0; char inputString[100]; char *result=NULL; char *result2=NULL; char delims[] = " "; char historyArray[100][100] = {0}; char historyKey[] = "history"; char *tokenArray[100][100] = {0} ; //char exitString[] = "exit"; do { printf("hshell>"); gets(inputString); strcpy (historyArray[k], inputString); k++; // Break the string into parts result = strtok(inputString, delims); while (result!=NULL) { result2 = result; puts(result); result= strtok(NULL, delims); for (int count = 0; count < k; count++) tokenArray[count] = result2; j++; } if (strcmp(inputString,historyKey) == 0) { for (i=0; i<k; i++) { printf("%d. %s \n",i+1,historyArray[i]); } } else if (strcmp ("exit",inputString) != 0) { printf("\nCommand not found \n"); } }while (strcmp ("exit", inputString) != 0); return 0; } 

首先,听起来你需要一个单维数组来输入:

  char tokenArray[100]; 

然后更进一步,循环将执行此操作:

 result = strtok(inputString, delims); j = 0; while (result!=NULL) { strcpy(tokenArray[j++], result); puts(result); result= strtok(NULL, delims); } 

尝试使用该提示,然后查看其余部分。