#10760. 字符处理第一题(NOIP2008)字符串替换

字符处理第一题(NOIP2008)字符串替换

(NOIP2008)字符串替换

给定一个字符串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;
}

①处应填( )。
{{ 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'

②处应填( )。
{{ 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'

③处应填( )。
{{ 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];

④处应填( )。
{{ select(4) }}

  • int len=strlen(str);
  • Changestring();
  • ChangeString();
  • changeString();