Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何从C中的给定行创建字符串数组?_C_Arrays_String - Fatal编程技术网

如何从C中的给定行创建字符串数组?

如何从C中的给定行创建字符串数组?,c,arrays,string,C,Arrays,String,现在,我如何将这行中的单词转换成字符串数组 char a[100]="You are welcome"; 通过这种方式,我们可以生成字符串数组 但是我想对任何给定的输入动态地执行吗 请帮助……strtok是你的朋友: char b[5][20]; strcpy(b[0],"you"); strcpy(b[1],"are"); strcpy(b[2],"welcome"); strtok是你的朋友: char b[5][20]; strcpy(b[0],"you"); strcpy(b[1],

现在,我如何将这行中的单词转换成字符串数组

char a[100]="You are welcome";
通过这种方式,我们可以生成字符串数组

但是我想对任何给定的输入动态地执行吗


请帮助……

strtok
是你的朋友:

char b[5][20];
strcpy(b[0],"you");
strcpy(b[1],"are");
strcpy(b[2],"welcome");

strtok
是你的朋友:

char b[5][20];
strcpy(b[0],"you");
strcpy(b[1],"are");
strcpy(b[2],"welcome");

您可以在while循环中使用“scanf”代替“printf”,并将值存储在第二个数组中(本例中为b)

您可以在while循环中使用“scanf”代替“printf”,并将值存储在第二个数组中(本例中为b)


在TCL中,我们可以通过拆分行[split$line”“],然后所有单词都将出现在列表元素中。在C中是否有类似的过程?在TCL中,我们可以通过拆分行[split$line”“],然后所有单词都将出现在列表元素中。在C中是否有类似的过程?由于您正确初始化了
b
数组,要迭代复制到数组中的所有字符串(假定您总是将
b[4]…
留空),您可以使用
while(*b[i])printf(“b[%d]=%s\n”,i,b[i])迭代字符串
(在为最后一个指针赋值之前,您可以通过确保
realloc
对动态分配的指向char的指针数组执行相同操作)。不,您已经使用
char b[5][20]={{0}将所有字符初始化为
0
,因此只需检查第一个字符是否不是
0
就可以避免对
strlen
:)
——试试看,用
while(*b[i])
循环替换整个打印循环。(您确实需要确保在循环之前设置
i=0;
,并在循环结束时设置
i++
)尝试一下
i=0;虽然(*b[i]){printf(“b[%d]=%s\n”,i,b[i]);i++;}
由于您正确初始化了
b
数组,为了迭代复制到数组中的所有字符串(假设您总是将
b[4]…
保留为空),您可以在(*b[i])printf中用
迭代字符串
(在为最后一个指针赋值之前,您可以通过确保
realloc
对动态分配的指向char的指针数组执行相同操作)。不,您已经使用
char b[5][20]={{0}将所有字符初始化为
0
,因此只需检查第一个字符是否不是
0
就可以避免对
strlen
:)
——试试看,用
while(*b[i])
循环替换整个打印循环。(您确实需要确保在循环之前设置
i=0;
,并在循环结束时设置
i++
)尝试一下
i=0;而(*b[i]){printf(“b[%d]=%s\n”,i,b[i]);i++;}
i = 0; 
while (*b[i]) 
{ 
    printf( "b[%d] = %s\n", i, b[i] ); 
    i++; 
}
 while (pch != NULL)   {
     printf ("%s\n",pch);
     pch = strtok (NULL, " ,.-");   }