[英]fill two dimensional array with parts of a string
我希望将我断开的字符串部分输入到二维数组中,例如:字符串:“一天”数组中的结果:Col1:一个Col2:一天
现在的问题是,我该如何填补这两个变量数组result2
列1和result
列2?
到目前为止,这是我的代码(如您所见,我有一个用于历史记录的单独数组和一个用于保存用户输入部分的单独数组):
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
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);
}
尝试使用该提示,然后查看其余内容。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.