【发布时间】:2019-01-20 02:59:13
【问题描述】:
我想编写一个 C 程序来搜索给定字符串中所有出现的单词,并且 用大写字母写出所有出现的单词。
例子
输入
输入字符串:早上好。祝你有美好的一天。
输出 在位置 1 发现了“好”这个词 在位置 22 发现了“好”这个词
早上好。祝你有美好的一天。
我写了以下代码
#include <stdio.h>
#include <string.h>
void main()
{
char str[1000], pat[20] = "good";
int i = 0, j, mal = 0, flag = 0;
printf("Enter the string :");
gets(str);
while (str[i] != '\0')
{
if (str[i] == pat[0])
{
j = 1;
//if next character of string and pat same
while(pat[j] != '\0' && str[j + i] != '\0' && pat[j] == str[j + i])
{
j++;
flag = 1;
}
if (pat[j] == '\0')
{
mal += 1;
printf("\n The word was found at location %d.\n" , i + 1);
}
}
i++;
if (flag == 0)
{
if (str[j + i] == '\0')
printf(" The word was not found ") ;
}
}
printf("The word was found a total of %d times", mal);
}
如何将“好”这个词转换为大写字母?
当我使用 C 库 ctype.h 中的函数 toupper 时,整个文本都被转换为大写字母。 你能帮我吗?
谢谢
【问题讨论】:
-
你需要存储目标词的起始位置,比如1和22。你也知道目标词的长度。因此,当您对输入字符串进行后处理时,请仅在该区域(1-4 和 22-25)内使用
toupper。 -
请正确格式化您的代码:正确缩进并删除不必要的空行。
-
DAVID,如果寻找“aba”,“xyx_ababa”应该打印为“xyx_ABAba”还是“xyx_ABABA”?
-
"我使用C库ctype.h中的toupper函数,将整个文本转换成大写字母" --> post that use.
标签: c