把字符串里指定的字母改成指定的值。
用二维数组或者结构体。一开始使用的string字符串,但切割成数组的时候可能出现问题导致一个点过不去。
所以还是用结构体吧。
题目本身不难。
注:%s是通过空白符来截断字符串的,包括空格。
1 #include <iostream> 2 #include <cstdio> 3 #include <algorithm> 4 #include <string.h> 5 #include <cmath> 6 using namespace std; 7 const int maxn=1000+5; 8 struct Node{ 9 char team[15]; 10 char pass[15]; 11 }ans[maxn]; 12 int main() 13 { 14 int n; 15 int cnt=0; 16 char team[20],pass[20]; 17 scanf("%d",&n); 18 int flag; 19 for(int i=0;i<n;i++){ 20 scanf("%s %s",team,pass); 21 int len=strlen(pass); 22 flag=0; 23 for(int j=0;j<len;j++){ 24 if(pass[j]=='1'){ 25 flag=1; 26 pass[j]='@'; 27 } 28 else if(pass[j]=='0'){ 29 flag=1; 30 pass[j]='%'; 31 } 32 else if(pass[j]=='l'){ 33 flag=1; 34 pass[j]='L'; 35 } 36 else if(pass[j]=='O'){ 37 flag=1; 38 pass[j]='o'; 39 } 40 } 41 if(flag==1){ 42 strcpy(ans[cnt].team,team); 43 strcpy(ans[cnt].pass,pass); 44 cnt++; 45 } 46 } 47 if(cnt==0){ 48 if(n==1) 49 printf("There is 1 account and no account is modified "); 50 else 51 printf("There are %d accounts and no account is modified ",n); 52 } 53 else{ 54 printf("%d ",cnt); 55 for(int i=0;i<cnt;i++){ 56 printf("%s %s ",ans[i].team,ans[i].pass); 57 } 58 } 59 return 0; 60 }