678910都是RE,求助
查看原帖
678910都是RE,求助
678783
good_pig楼主2022/2/17 17:11
#include<stdio.h>
#include<iostream>
#include<algorithm>
#include<string.h>
using namespace std;
bool cmp(string s1,string s2){   //比较两个字符串是否相等,不区分大小写 
	if(s1.size()!= s2.size()){
		return false;
	}	
	for(int i=0;i<s1.size();i++){
		if('A'<=s1[i] && s1[i]<='Z')	s1[i]=s1[i]+32;
		if('A'<=s2[i] && s2[i]<='Z')	s2[i]=s2[i]+32;
		if(s1[i]!=s2[i]){
			return false;
		}	
	}
	return true;
}
int main(){
	string s,str,strr[10000];
	int location[10000],count=0,l=0;
	cin>>s;
	getchar();
	getline(cin,str);
	int j=0,k=0;
	for(int i=0;str[i]!='\0';i++){
		if(str[i]!=' '){
			k=i;
			break;
		}
	}   //k保存第一个非空格字符的位置 
	for(int i=0;str[i]!='\0';i++){
		if(str[i]!=' ')	continue;
		else{
			strr[j]=str.substr(k,i-k); //将字符串str中每个单词切割存放在strr[]中 
			location[j]=k;  //记录每个单词首字母下标位置 
			k=i+1;
			j++;
		}
	}
	strr[j]=str.substr(k,str.size()-k);
	location[j]=k;
	for(int i=0;i<=j;i++){
		if(cmp(s,strr[i])){
			if(!count)	l=location[i];  //第一次匹配单词,将该单词位置赋值给l 
			count++;
		}
	}
	if(count){
		cout<<count<<' '<<l;
	}else	cout<<"-1";
	return 0;
}
2022/2/17 17:11
加载中...