C语言编程题:输入格式: 输入一段英文文章,文章包含除了 $ 之外的全部 ASCII 可见字符。文章总长度不超过 10 5 个字符,且一定以 $ 结束。 输出格式: 输出第一行是一个数,为除了 WoW 之外所有形如 wow 的单词个数。其中单词的定义为用非大小写字母隔开的连续大小写字母。 接下来原文输出,但将所有 WoW 替换为 World of Warcraft。原文输出时不需要输出结束符 $。 输入样例: Wow, such WoW, very cool! wowWoWwowWow~$ 输出样例: 1 Wow, such World of Warcraft, very cool! wowWoWwowWow~ 代码长度限制 16 KB 时间限制 400 ms 内存限制 64 MB
时间: 2023-01-11 10:55:36 浏览: 178
C语言编程题的解答:
首先,我们可以使用 fgets 函数来读入输入的文本,并用一个变量来记录当前是否在单词中,然后对于每个字符进行判断:
- 如果当前字符是字母,那么将当前变量设为 "在单词中",并继续判断下一个字符
- 如果当前字符是非字母,那么将当前变量设为 "不在单词中",并继续判断下一个字符
- 如果当前字符是 $,则输出答案并退出程序
对于单词 wow 的计数,我们可以使用一个变量来记录当前单词是否是 wow。如果当前单词是 wow,则将计数器加一,并将当前单词设为非 wow。
最后,我们需要注意将 WoW 替换为 World of Warcraft。我们可以在判断单词是否是 wow 的同时,同时判断单词是否是 WoW。如果是,则在输出单词时输出 World of Warcraft 而不是 WoW。
以下是示例代码:
```c
#include <stdio.h>
#include <ctype.h>
#include <string.h>
int main()
{
char s[100001];
int cnt = 0; // 单词计数器
int in_word = 0; // 当前是否在单词中
int is_wow = 0; // 当前单词是否是 wow
int is_WoW = 0; // 当前单词是否是 WoW
fgets(s, 100001, stdin);
阅读全文