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

标签 c arrays string token

我希望将我破坏的字符串部分输入到二维数组中,例如: 字符串:“有一天” 数组结果:Col1:一个 Col2:天

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

这是我到目前为止的代码(如您所见,我有一个单独的历史数组和一个单独的数组用于保存用户输入的部分):

#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);
}

尝试使用该提示并查看其余内容。

关于c - 用字符串的一部分填充二维数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14965436/

相关文章:

c - 如果没有使用 openlog() 的网络,那么 syslog() 设施是什么

python - 在递归中使用 return 的地方

c - Libxml2 未在第一行解析有效的 xml 文件(段错误)

Python - 从 numpy 数组分布计算 pdf

javascript - for循环打印出多个具有相似名称的数组

c# - 无法将类型 'double' 隐式转换为 'int'

regex - 在 Perl 中的变量中用反斜杠替换文本

java - 如何检查字符串是否包含特定范围内的数字,例如java中的11到26

string - 在 F# 中查找字符串序列中所有出现的字符串?

c++ - 要求编译器发出无分支/恒定时间代码