实现特殊乘法

例题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;
}