将字符串拆分并存储到数组中(在C中)

将字符串拆分并存储到数组中(在C中),c,string,split,strtok,C,String,Split,Strtok,尝试将扫描到我的数组“行”中的单词字符串拆分,其中新字符串按空格拆分,每个拆分的字符串都假定进入我的数组“scoops”,以便我可以访问任何拆分的字符串索引,以备以后使用 但我不能让它完全工作。当我尝试在while循环中打印scoops数组时,由于某种原因,j索引保持为0,但正在正确打印分割的字符串 当我尝试查看while循环之外的所有新字符串时,它只打印索引0的第一个字符串。之后就崩溃了 输入/输出示例: (我试图搜索类似的帖子,并尝试了这些解决方案,但仍然出现相同的问题) #包括 #包括

尝试将扫描到我的数组“行”中的单词字符串拆分,其中新字符串按空格拆分,每个拆分的字符串都假定进入我的数组“scoops”,以便我可以访问任何拆分的字符串索引,以备以后使用

但我不能让它完全工作。当我尝试在while循环中打印scoops数组时,由于某种原因,j索引保持为0,但正在正确打印分割的字符串

当我尝试查看while循环之外的所有新字符串时,它只打印索引0的第一个字符串。之后就崩溃了

输入/输出示例:

(我试图搜索类似的帖子,并尝试了这些解决方案,但仍然出现相同的问题)

#包括
#包括
#包括
int main(){
int i,c,j;
字符*顺序;
字符行[256];//最大顺序为196个字符(19个四倍+勺子)
char*scoops[19];//从strtok最多可以看到19个不同的字符串
//获取案例数量
scanf(“%d”、&c);
//你有多少病例
对于(i=0;i
不读取任何空白字符。如果要读取一行文本,包括空白字符,则需要使用
fgets

    fgets(line, sizeof(line), stdin);
但是,要使其正常工作,您需要添加一些代码,以忽略调用后输入流中剩余的行:

scanf("%d",&c);
例如:

// Ignore the rest of the line.
char ic;
while ( (ic = getc(stdin)) != EOF && ic != '\n');

示例输入和预期输出?抱歉,已发布。4不相关。目前只是一个任意数字。但是有示例字符串,它正在拆分,但无法存储在不同的索引中。我不确定如何合并代码以忽略其余的line@Hispazn,只需在调用
scanf
后添加这两行即可“错误:函数'getc'中的参数太少了”“@Hispazn,我的错。我忘记在调用
getc
时添加
stdin
。”。
scanf("%d",&c);
// Ignore the rest of the line.
char ic;
while ( (ic = getc(stdin)) != EOF && ic != '\n');