C++ 字符串相同计数(string)& 统计单词个数(string)

最近在学C++,做到了两个很像的题目。

那么话不多说,直接上题目和代码!

第一题:字符串相同计数

题目描述
输入一个字符串 a, 以及 (1<<300)n(1<n<300) 个字符串, 输出与字符串 a, 相同的字符串的个数

输入格式

第一行输入一个字符串 a 。
第二行输入一个整数 (1≤300)n(1≤n≤300) ,表示接下来待输入字符串的数量。
接下来的 n 行,每行输入一个字符串。

输出格式

输出一个整数,表示与字符串 a 相同的字符串个数

代码:

#include<iostream>
#include<string>
using namespace std;
string s1, s2;
int main(){
	cin >> s1;
	int n, cnt = 0;
	cin >> n;
	for(int i = 1; i <= n; i++){
		cin >> s2;
		if(s2 == s1){
			cnt++;
		}
	}
	cout << cnt;
	return 0;
}

 

第二题:统计单词个数

题目描述

你拿到一本单词簿,现需要统计与单词 a 相同的单词的个数 (忽略大小写)

输入格式

输入一个数字 n ,表示单词簐的单词个数 (1≤1000(1≤n≤1000 )
输入 n 行单词,表示单词簿中的单词
输入一行字符串 a ,表示需要查找的单词

输出格式

输出一个数字 x ,表示单词泘中有 x 个与 a 相同的单词,如果不存在,则输出 -1

代码:

#include<iostream>
#include<string>
using namespace std;
string s1, s2[1010];
void zhuan(string &s){
	int len1 = s.size();
	for (int i = 0; i < len1; i++){
		if(s[i] >= 'a' && s[i] <= 'z'){
			s[i] = s[i] - 'a' + 'A';
		}
	}
}
int main(){
	int x, cnt = 0;
	cin >> x;
	for(int i = 1; i <= x; i++){
		cin >> s2[i];
		zhuan(s2[i]);
	}
	cin >> s1;
	zhuan(s1);
	for(int i = 1; i <= x; i++){
		if(s2[i] == s1){
			cnt++;
		}
	}
	if(cnt == 0){
		cout << "-1";
	}else{
		cout << cnt;
	}
	return 0;
}

  

 注意:这一题和上一题不太一样,第一题是可以直接输入就比较(因为已经提前知道要比较的字符串了,所以直接比较),第二题却要先保存再比较(因为在输入将要比较的字符串时,还不知道需要对比的字符串是什么,所以要先保存在比较),作者写代码时疯狂踩雷,各位注意一下。

这是我的解题思路和代码,欢迎各位大佬指点!

大佬们互三互三! 

  • 5
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值