gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-04 07:03:13 25 4
gpt4 key购买 nike

char a[100]="You are welcome";

现在如何将这一行中的单词变成字符串数组?

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

这样,我们就可以创建一个字符串数组。

但我想对任何给定的输入进行动态处理?

请帮忙...

最佳答案

strtok是你的 friend :

char a[] = "You are welcome";
char b[5][20] = {{0}};
char *pch;

pch = strtok( a," \t" );
int i = 0;
while( NULL != pch && i < 5)
{
strcpy(b[i++], pch);
pch = strtok( NULL, " \t\n" );
}

for( i = 0; i < 5; i++ )
{
if( strlen(b[i]) > 0 )
{
printf( "b[%d] = %s\n", i, b[i] );
}
}

别忘了 #include <string.h>


正如 David C. Rankin 指出的那样。我们可以取消 strlen通过检查第一个字符而不是 \0 .所以这是一个更好的解决方案(注意 while 处理的主 strtok 循环保持不变)。

i = 0; 
while (*b[i])
{
printf( "b[%d] = %s\n", i, b[i] );
i++;
}

关于c - 如何从 C 中的给定行创建一个字符串数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35520845/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com