求助,c语言50分,578910测试点不过
查看原帖
求助,c语言50分,578910测试点不过
791292
casketa楼主2022/10/5 17:55
#include<stdio.h>
#include<string.h>
char words[1000000],word[12];
int i = 0, count = 0, position = -1, word_len = 0, words_len = 0;
int main()
{
	gets(word);
	gets(words);
	word_len = strlen(word);
	words_len = strlen(words);
//	printf("%d,%d\n",word_len,words_len);
//	for(i = word_len;i > 0,i--)
//	{
//		word[i] = word[i - 1];
//	}
//	word[0] = ' ';
//	word[word_len + 1] = ' ';
	for(i = 0;i < word_len;i++) //大小写转换 
	{
		if(word[i] >= 'A' && word[i] <= 'Z')
		{
			word[i]+=32;
		}
	}
		for(i = 0;i < words_len;i++)
	{
		if(words[i] >= 'A' && words[i] <= 'Z')
		{
			words[i]+=32;
		}
	}
		static int flag_1 = 1, flag_2 = 1;
	for(i = 0;i < words_len;) //遍历words部分 
	{
		if(flag_2)
		{
			flag_2 = 0;
//			printf(" i = %d\n",i);
			if(judge(i))
			{
//			printf("judgeI = %d\n",i);
				count++;
				if(flag_1)
				{
					position = i;
					flag_1 = 0;
				}
				i = i + word_len;
			}else i++;	
		}
		if(words[i] == ' ')
		{
			flag_2 = 1;
		}
		i++;
	}
	if(position != -1)
		printf("%d %d",count,position);
	else printf("-1");
	
} 

int judge(int m)
{
	int j = 0;
	for(j=0;j < word_len;)
	{
		if(word[j] != words[m])
			return 0;
		else
		{
			j++;
			m++;
		}
	}
	if(m < words_len)
	{
		if(words[m] != ' ' && words[m] != '\r')
			return 0;
	}
	return 1;
}
2022/10/5 17:55
加载中...