80分代码求帮助
查看原帖
80分代码求帮助
1377396
carlzh809楼主2024/9/12 02:07

1#/3#点位WA,1#点自己输入能过,而且和洛谷编译出来结果不一样 求各位大佬帮忙看看

#include<stdio.h>
#include<cstring>
int isletter(char);
int main(void)
{
	char word[11];
	char arti[1000020];
	int i,j,n,cnt,no;
	fgets(word, 11, stdin);
	fgets(arti, 1000020, stdin);
	
	n=strlen(word)-1;												//单词长度,fgets会多读一个\n,因此-1
	cnt=0;
	for(i=0; i<1000020; i++){										//从文章第i个字符起,判断后面n个字符是否与单词匹配
		for(j=0; j<n; j++){
			if(!(word[j]==arti[i+j]||word[j]==(arti[i+j]+32)||word[j]==(arti[i+j]-32))){
				goto label;
			}
		}
		if(isletter(arti[i+n])||isletter(arti[i-1])){				//判断从i-1,i+n字符是否为空格,即单词前后是否为空格
			label:
			continue;
		}
		else{
			cnt++;													//计数
			if(cnt==1){												//第一次找到单词时记录文章中位置
				no=i;
			}		
		}
	}
	if(cnt==0){
		printf("-1");
	}
	else{
		printf("%d %d", cnt, no);
	}
	
	return 0;
}

int isletter(char a){
	if((a>64&&a<91)||(a>96&&a<123)){
		return 1;
	}
	else{
		return 0;
	}
}
2024/9/12 02:07
加载中...