本人代码水平有限,代码显得有些乱。。。 基本思路是,每次读取文章中的一个词汇到一个数组中,将这个单词和给定的单词作比较。之后再进行下一个的输入和比较。
#include <stdio.h>
#include <ctype.h>
int main()
{
char a[100]; char b[100];//a数组用来储存给定用来比较的单词,b数组用来储存给定文章中的每一个单词
int i = 1; char c;//c用来暂存当前读入的字符
int flag = 1;//flag用来计数当前的字母出现在文章的哪一个位置上
int m = 1;//m用来记录当前读入单词的首字母位于文章的哪一个位置上
int n = 0;//n用来标记文章的结束
int h = 0;//h用来标记当前是否位于一个单词内部,位于时为1
int u = 0;//u用来记录给定单词的长度
int o = 0;//o用来记录文章中每一个单词的长度
int cs = 0;//cs用来记录单词在文章中出现的次数
int y = 0;//y用来记录第一次出现的位置
int k = 0;
while ((c = getchar()) != '\n')
{
a[i] = tolower(c); i++; u++;
}
i = 1;
for (int j = 1; n!=2; j++)
{
m = flag;
while (k!=1&&( c = getchar()) != ' ')
{
flag++;
if (c == '\n')
{
n = 1; k = 1;
}
if (k != 1) {
b[i] = tolower(c); i++; o++;
}
}
if (n == 1) n++;
if (o != u)
{
flag++; m = flag; i = 1; o=0; continue;
}
else
{
int panduan = 0;
for (int l = 1; l <= o; l++)
{
if (b[l] != a[l]) panduan = 1;
}
if (panduan == 0)
{
cs++;
if (y == 0) y = m;
}
}
flag++; m = flag; i = 1; o=0;
}
if (cs == 0)
{
printf("%d", -1);
}
else
{
printf("%d %d", cs, y-1);
}
return 0;
}