字符串替换

给定一个字符串S(S仅包含大小写字母),下面的程序将S中的每个字母用规定的字母替换,并输出 S 经过替换后的结果。
程序的输入是两个字符串,第一个字符串是给定的字符串S,第二个字符串 S’由26个字母组成,它是 a-z 的任一排列,大小写不定。
S’规定了每个字母对应的替换字母:S’中的第一个字母是字母 A 和 a 的替换字母,即S中的A用该字母的大写替换,S 中的 a 用该字母的小写替换;S’中的第二个字母是字母 B 和 b 的替换字母,即 S 中的 B 用该字母的大写替换,S 中的 b 用该字母的小写替换;…… 以此类推。
【样例输入】
ABCdefg
qwerTYUIOPASDFghjklzxcvBNM
【样例输出】
QWErtyu

#include <iostream>
#include <string.h>
char change[26], str[5000];
using namespace std;
//函数功能是将change数组的字母统一为小写字母
void CheckChangeRule()
{
    int i;
    for (i = 0;i < 26;i ++)
    {
        //将change数组中的大写字母转为小写字母
        if (change[i] >= 'A' && change[i] <= 'Z')
               change[i] -= 'A' - 'a';
    }
}
//函数功能是将 str 中的字母按照规则进行替换
void ChangeString()
{
    int i;
    for (i = 0;i <strlen(str);i ++)
    {
        //如果是大写字母  
        if (str[i] >= 'A' && str[i] <= 'Z')
               str[i] = change[str[i] - 'A'] -'a' + 'A';
    
        else  //否则是小写字母
               str[i] = change[str[i]-'a'];       
    }
}

int main()
{
    int i;
    cin >> str ;
    cin >> change;
    CheckChangeRule();
    ChangeString(); //调用函数进行字母替换
    cout << str << endl;
    return 0;
}
原文地址:https://www.cnblogs.com/iamxuwu/p/13697462.html