gpt4 book ai didi

c - 从字符串中打印一个单词

转载 作者:太空宇宙 更新时间:2023-11-04 05:55:38 26 4
gpt4 key购买 nike

我想打印一些字符串中的第三个单词。

在下面的示例中 - 它有效,但是 - 可以用其他更好的方式制作吗?

#include <stdio.h>
#include <string.h>

char str1[20] = "This is string";
int a, b = 0, nums = 1;
char sec[20];

int main()
{
for (a = 0; a <= strlen(str1); a++) {

if ( str1[a] != ' ')
{
printf ("%c", str1[a]);

if (nums == 3)
{
sec[b] = str1[a];
++b;
}

} else {
printf ("\n");
++nums;
}
}

printf ("\n\n%s\n", str1);
printf ("Total words count: %d\n", nums);

printf("Third word: %s\n", sec);

return 0;

}

可能是 - 使用 *pointers,而不是 arrays[],或其他东西?

此外 - 在 C 中使用嵌套的 if 运算符是个好主意吗?

最佳答案

也许这不是最优雅的解决方案,但您可以使用 strtok() .假设你所有的单词都是用空格分隔的,那么这只是 strtok'ing x 次的问题。我很快就把这个东西组合在一起了,但我希望它应该可以正常工作。

#include <string.h>
#include <stdio.h>

int main( void ) {
char str[] = "This is a string\n";
char *token;
int i;
token = strtok( str, " ");
i = 1;
while( token != NULL ) {
if( 3 == i ) {
fprintf( stdout, "%s\n", token );
fflush( stdout );
}
token = strtok(NULL, " ");
i++; // <-- this was missing
}
return 0;
}

关于c - 从字符串中打印一个单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28155371/

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