如何从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, " ,.-"); }