专栏文章

405J1R训练(T636403 统计单词数)

个人记录参与者 1已保存评论 0

文章操作

快速查看文章及其快照的属性,并进行相关操作。

当前评论
0 条
当前快照
1 份
快照标识符
@miosuruk
此快照首次捕获于
2025/12/03 00:35
3 个月前
此快照最后确认于
2025/12/03 00:35
3 个月前
查看原文

正确代码

先来一个大写转小写函数,再来两个字符串变量:a,s;在输入s,再来一个getchar函数,这用来清空缓存中的空格,再来s=f(s);getline(cin,a);a=f(a);s=" "+s+" ";a=" "+a+" ";然后定义两个整数变量:x=0和ans=0;再来一个while循环,这while循环主要是把find函数放进去,然后来一个if判断,最后cout<<ans<<" ";cout<<a.find(s,0);

正确代码

CPP
#include<bits/stdc++.h>
using namespace std;
string f(string a){
	for(int i=0;i<a.size();i++){
		if(a[i]>='A' && a[i]<='Z'){
			a[i]+=32;
		} 
	}
	return a;
}
string a,s;
int main(){
	cin>>s;
	getchar();
	s=f(s);
	getline(cin,a);
	a=f(a);
	s=" "+s+" ";
	a=" "+a+" ";
	int x=0;
	int ans=0;
	while(a.find(s,x)!=string::npos){
		ans++;
		x=a.find(s,x)+1;
	}
	if(ans==0){
		cout<<-1;
		return 0;
	}
	cout<<ans<<" ";
	cout<<a.find(s,0);
	return 0;
} 

评论

0 条评论,欢迎与作者交流。

正在加载评论...