【发布时间】:2015-01-26 17:26:30
【问题描述】:
我想打印一些字符串中的第三个单词。
在下面的示例中 - 它可以工作,但是 - 可以用其他更好的方式制作吗?
#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 运算符是个好主意吗?
【问题讨论】:
-
用 strlen 迭代是不好的。在 "for (a = 0; a
-
可能更适合Code Review
-
您可以使用 printf 长度限制器:stackoverflow.com/questions/2239519/…
标签: c