首页 > 编程语言 >PAT_甲级_1035 Password (20分) (C++)【字符串处理/签到题】

PAT_甲级_1035 Password (20分) (C++)【字符串处理/签到题】

时间:2022-10-27 16:02:58浏览次数:52  
标签:password 20 name 签到 C++ else ans 字符串 include


目录

​1,题目描述​

​2,思路​

​3,代码​


1,题目描述

PAT_甲级_1035 Password (20分) (C++)【字符串处理/签到题】_C++

 

 

2,思路

将字符串中指定字符替换为其他字符。

直接看代码吧。。。

字符串处理

参考了这篇文章​​@小明他很忙 【C++ 中字符串查找、字符串截取、字符串替换】​​ 

 

3,代码

#include<iostream>
#include<vector>
#include<map>
#include<climits>
#include<string.h>
#include<string>
#include<algorithm>
using namespace std;

struct accont{
string name, modified;
};

bool isConfused(string &s){
bool ans = false;
for(int i = 0; i < s.length(); i++){
if(s[i] == '1'){
s.replace(i, 1, "@");//注意是双引号字符串
ans = true;
}else if(s[i] == '0'){
s.replace(i, 1, "%");
ans = true;
}else if(s[i] == 'l'){
s.replace(i, 1, "L");
ans = true;
}else if(s[i] == 'O'){
s.replace(i, 1, "o");
ans = true;
}
}
return ans;
}
int main(){
//#ifdef ONLINE_JUDGE
//#else
// freopen("1.txt", "r", stdin);
//#endif

int n;
cin>>n;
string name, password;
name.resize(10);
password.resize(10);
vector<accont> ans;
for(int i = 0; i < n; i++){
scanf("%s %s", &name[0], &password[0]);
if(isConfused(password) == true)
ans.push_back({name, password});

}
if(ans.size() == 0){
if(n == 1)
printf("There is 1 account and no account is modified"); //注意输出格式!
else
printf("There are %d accounts and no account is modified", n); //注意输出格式!
}else{
printf("%d\n", ans.size()); //注意输出格式!
for(int i = 0; i < ans.size(); i++){
printf("%s %s\n", ans[i].name.c_str(), ans[i].modified.c_str());//需要调用c_str()函数
}
}


return 0;
}

 

标签:password,20,name,签到,C++,else,ans,字符串,include
From: https://blog.51cto.com/u_15849465/5801386

相关文章