【发布时间】:2022-10-14 16:51:56
【问题描述】:
编写一个允许用户输入句子的程序。然后程序应该打印从第三个单词开始的句子。
例如它应该像这样打印:
输入一句话:欢迎来到编程课程 编程课程
我的代码的问题是它只打印以第二个单词而不是第三个单词开头的句子。我想知道我的代码有什么问题?
#include <stdio.h>
#include <string.h>
#define SIZE 100
int main(void)
{
char arr[SIZE];
char* p = NULL;
int count = 0;
printf("Enter a sentence:");
fgets(arr, SIZE, stdin);
for (int i = 0; i < SIZE; i++) {
if (arr[i] == ' ') {
count++;
}
}
if (count < 3 ) {
printf("The sentence is to short!\n");
}
else {
count = 0;
for (int i = 0; i < strlen(arr); i++) {
if (arr[i] == ' ') {
count++;
}
if (count == 2) {
p = &arr[i + 1];
}
}printf("%s\n", p);
}
return 0;
}
【问题讨论】:
-
for (int i = 0; i < SIZE; i++)这太重要了。在此循环中也使用strlen -
@badprogrammer 要么将您的解决方案发布为答案,要么删除问题。
标签: c for-loop split whitespace c-strings