程序填空题

第27题:字符串替换

题目描述

给定一个字符串 S(S 仅包含大小写字母),程序将 S 中的每个字母用规定的字母替换,并输出 S 经过替换后的结果。

程序的输入是两个字符串,第一个字符串是给定的字符串 S,第二个字符串 S' 由 26 个字母组成,它是 a∼z 的任一排列,大小写不定。

S' 规定了每个字母对应的替换字母:

  • S' 中的第一个字母是字母 A 和 a 的替换字母,即 S 中的 A 用该字母的大写替换,S 中的 a 用该字母的小写替换;
  • S' 中的第二个字母是字母 B 和 b 的替换字母,即 S 中的 B 用该字母的大写替换,S 中的 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) ①处应填 ( )。

A. change[i]>='a'&&change[i]<='z'
B. change[i]<'A'||change[i]>='z'
C. change[i]>='A'&&change[i]<='Z'
D. change[i]<'a'&&change[i]>'z'

(2) ②处应填 ( )。

A. str[i]>='a'&&str[i]<='z'
B. str[i]<'A'&&str[i]>'z'
C. str[i]<'a'&&str[i]>'z'
D. str[i]>='A'&&str[i]<='Z'

(3) ③处应填 ( )。

A. change[str[i]-'a']=str[i];
B. str[i]=change[str[i]-'a'];
C. str[i]=change[str[i]-'A'];
D. change[str[i]-'z']=str[i];

(4) ④处应填 ( )。

A. int len=strlen(str);
B. Changestring();
C. ChangeString();
D. changeString();