1.7编程基础之字符串

编程基础之字符串操作汇总
这篇博客探讨了各种字符串操作,包括统计数字字符、查找唯一字符、基因分析、字符串游戏、输出格式化字符串、C标识符规则、碱基配对、字符替换与加密解密、字符串比较与验证、单词处理及过滤、以及涉及字符串排列和识别的多种问题,展示了字符串在不同场景下的应用。
统计数字字符个数
#include <iostream>
#include <cstdio>
using namespace std;

int main() {
   
   
	char ch;
	int cnt = 0;
	
	while (cin >> ch) {
   
   
		if (ch >= '0' && ch <= '9') cnt ++;
	}
	cout << cnt;

	return 0;
}
找第一个只出现一次的字符
#include <iostream>
#include <cstdio>
using namespace std;

string s;
int cnt[26];

int main() {
   
   
	cin >> s;
	
	for (int i = 0; i < s.size(); i ++) {
   
   
		cnt[s[i]-'a'] ++;
	}
	
	for (int i = 0; i < s.size(); i ++) {
   
   
		if (cnt[s[i]-'a'] == 1) {
   
   
			cout << s[i];
			return 0;
		}
	}

	cout << "no";
	
	return 0;
}
基因相关性
#include <iostream>
#include <cstdio>
using namespace std;

double val;
string a;
string b;

int main() {
   
   
	cin >> val >> a >> b;
	
	int cnt = 0;
	for (int i = 0; i < a.size(); i ++) {
   
   
		if (a[i] == b[i]) cnt ++;
	}
	
	if (1.0 * cnt / a.size() >= val) cout << "yes";
	else cout << "no";
	
	return 0;
}
石头剪子布
#include <iostream>
#include <cstdio>
#include <unordered_map>
using namespace std;

int n;
unordered_map<string, int> m;

int main() {
   
   
	m["Rock"] = 2;
	m["Scissors"] = 1;
	m["Paper"] = 0;
	
	cin >> n;
	
	for (int i = 1; i <= n; i ++) {
   
   
		string p1, p2;
		cin >> p1 >> p2;
		
		int res = (m[p1] - m[p2] + 3) % 3;
		if (res == 1) puts("Player1");
		if (res == 0) puts("Tie");
		if (res == 2) puts("Player2");
	}
	
	return 0;
}
输出亲朋字符串
#include <iostream>
#include <cstdio>
using namespace std;

string s;

int main() {
   
   
	getline(cin, s);
	int len = s.size();
	
	for (int i = 0; i < len; i ++) {
   
   
		cout << char(s[i] + s[(i+1)%len]);
	}
	
	return 0;
}
合法 C 标识符
#include <iostream>
#include <cstdio>
using namespace std;

string s;

int main() {
   
   
	cin >> s;
	
	if (s[0] >= '0' && s[0] <= '9') {
   
   
		puts("no");
		return 0;
	}
	
	for (int i = 0; i < s.size(); i ++)	 {
   
   
		if (s[i] >= '0' && s[i] <= '9') continue;
		else if (s[i] >= 'A' && s[i] <= 'Z') continue;
		else if (s[i] >= 'a' && s[i] <= 'z') continue;
		else if (s[i] == '_') continue;
		else {
   
   
			puts("no");
			return 0;
		}
	}
	
	puts
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值