使用VC6打开考生文件夹下的源程序文件modi2.cpp。阅读下列函数说明和代码,补充空出的代码。函数convert(char*des,char*str,char c,char*str2)的功能是: 如果str中包含字符“!”,则替换成…a;

admin2015-05-30  22

问题 使用VC6打开考生文件夹下的源程序文件modi2.cpp。阅读下列函数说明和代码,补充空出的代码。函数convert(char*des,char*str,char c,char*str2)的功能是:
    如果str中包含字符“!”,则替换成…a;
    如果str中包含字符“&”,则替换成…b;.
    如果str中包含字符“*”,则替换成str2。
    并用函数返回目标转换后的指针。
    注意:只能补充函数convert(char*des,char*str.1 char*str2)。
    1    #include
    2  #include
    3  #define MAXLEN 1024
    4  void  convert(char*des , char*str,char*str2)
    5    {
    6
    7    }
    8    void main()
    9  {
    10    char dest[MAXLEN];
    11    char*str="!&cefghi*!&";
    12    char*str2="Jklm";
    13    convert(dest,str,str2);
    14    cout<    15    return;
    16  }

选项

答案1 des[0]=0 ; 2 char temp[2]={0,0); 3 for(int i=0 ; str[i]!=NULL; i++) 4 { 5 if(Str[i]==’!’) 6 { 7 temp[0]=’a’; //替换成’a’ 8 strcat(des,temp); 9 } 10 else if(str[i]==’&’) 11 { 12 temp[0]=’b’; 13 strcat(des,temp); //替换成-b- 14 } 15 else if(str[i]==’*’) 16 { 17 Strcat(des,str2); //替换成str2 18 } 19 else 20 { 21 temp[0]=str[i]; 22 strcat(des,temp); //其他情况则添加在后面 23 } 24 }

解析 函数convert(char*des,char*str,char c,char*str2)的功能是将str中包含的特定字符替换成其他字符,因此可利用循环搜索str字符串,找到特定字符后进行替换。
    [解题思路]
    (1)由审题分析可知,利用循环中不断检索str字符串每一个字符,循环变量i从0开始,直到到了str字符结束,即srt=NULL为循环判断结束条件。
    (2)在循环体内,用ifelse语句判断是不是“!”、“&”或“*”这些特定的字符,如果是这些特定的字符则进行相应的替换,如果不是则将该字符直接加在des后面。
    (3)字符串的连接可以使用字符串连接函数strcat(),将新字符连接在des后面,即strcat(des,temp)。
转载请注明原文地址:https://kaotiyun.com/show/2JNp777K
0

最新回复(0)