字符串的处理
实现特殊乘法
例题4.1
#include <iostream>
#include <cstdio>
#include <string>
using namespace std;
int main(){
string str1,str2;
while(cin>>str1>>str2){
int answer=0;
for(int i=0 ;i<str1.size();i++){
for(int j=0 ;j<str2.size();j++)
answer += (str1[i]-'0')*(str2[j]-'0'); //如果输入当多位数,则要取余得到数字
//把输入数字当字符串,就会方便且不容易出错
}
printf("%d\n", answer);
}
return 0;
}
后移5位密码解密
例题4.3
#include <iostream>
#include <cstdio>
#include <string>
using namespace std;
int main(){
string str;
while(getline(cin,str)){ //起始行
if(str=="ENDOFINPU") //直到遇见结束字符串才跳出循环
break;
getline(cin,str); //密文
for(int i=0;i<str.size();i++)
if('A'<=str[i] && str[i]<='Z')
str[i]=(str[i]-'A'-5+26)%26 + 'A'; //实现对字符串的循环-5操作
cout<<str<<endl;
getline(cin, str); //结束行
}
return 0;
}
字符统计
例题4.4
#include <iostream>
#include <cstdio>
#include <string>
#include <cstring>
using namespace std;
int number[128];
int main(){
string str1,str2;
while(getline(cin, str1)) {
if(str1 == "#")
break;
getline(cin,str2);
memset(number,0,sizeof(number));
for(int i=0;i<str2.size();i++)
number[str2[i]]++;
for(int i=0;i<str1.size();i++)
printf("%c %d\n",str1[i],number[str1[i]]);
}
return 0;
}