我换了好几种做法了,但是就是过不去,能不能有人看一下是不是我忽视了什么东西。
#include<stdio.h>
#include<string.h>
#include<ctype.h>
int Equal(char a, char b);
int main()
{
char word[12] = "", passage[102] = "", c;
int k1 = 1, k2 = 1;
while((c = getchar()) != '\r' && k1 < 11)
{
word[k1] = c;
++k1;
}
word[0] = word[k1] = ' ';//读入字符串前后加空
getchar();
while((c = getchar()) != '\r' && k2 < 101)
{
passage[k2] = c;
++k2;
}
passage[0] = passage[k2] = ' ';//读入字符串前后加空
int i, count = 0,x = 0, head = 0, tail = 0, flag = 0;//用head和tail确定单词的前后,然后进行对比
while (head != k2)
{
tail = head + 1;
while(passage[tail] != ' ')
{
++tail;
}
if(tail - head == k1)
{
for(i = 1; i < k1; ++i)
{
flag = 0;
if(!Equal(passage[head + i], word[i]))
{
++flag;
}
}
if(0 == flag)
{
if(0 == count)
{
x = head;
}
++count;
}
}
head = tail;
}
if(0 == count)
{
printf("-1");
}
else
{
printf("%d %d", count, x);
}
return 0;
}
int Equal(char a, char b)
{
if(islower(a))
{
a -= ('a' - 'A');
}
if(islower(b))
{
b -= ('a' - 'A');
}
if(a == b)
{
return 1;
}
else
{
return 0;
}
}