#CS50201. 完善程序2-字符处理-1字符串替换

完善程序2-字符处理-1字符串替换

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

#include <iostream>
#include <string.h>
char change[26], str[5000];
using namespace std;

void CheckChangeRule()
{
    int i;
    for (i = 0;i < 26;i ++)
    {
        if ( [                   ①                   ] )
               change[i] -= 'A' - 'a';
    }
}

void ChangeString()
{
    int i;
    for (i = 0;i <strlen(str);i ++)
    {
          if (  [                 ②                    ]  )
                str[i] = change[str[i] - 'A'] -'a' + 'A';
          else
                  [              ③             ]          
    }
}

int main()
{
		int i;
cin >> str ;
    cin >> change;
    CheckChangeRule();
    [               ④               ] 
    cout << str << endl;
    return 0;
}
  1. ①处应填( ){{ select(1) }}
  • change[i]>='a' && change[i]<='z'
  • change[i]<'A' || change[i]>'Z'
  • change[i]>='A' && change[i]<='Z'
  • change[i]<'a' && change[i]>'z'
  1. ②处应填( ){{ select(2) }}
  • str[i]>='a' && str[i]<='z'
  • str[i]<'A' && str[i]>'Z'
  • str[i]<'a' && str[i]>'z'
  • str[i]>='A' && str[i]<='Z'
  1. ③处应填( ){{ select(3) }}
  • change[str[i]-'a']=str[i];
  • str[i]=change[str[i]-'a'];
  • str[i]=change[str[i]-'A'];
  • change[str[i]-'z']=str[i];
  1. ④处应填( ){{ select(4) }}
  • int len=strlen(str);
  • Changerstring();
  • ChangeString();
  • changeString();