每日一题:华为初级题库——字符串替换

  <题目要求>

    替换一个字符串中的某个特定字符为另一个字符,能返回是否替换成功,已经替换成功后的字符串;

   函数参数为一个字符串,一个要被替换的字符,被替换成的字符,输出的字符串,表示形式为:

int ProcessString( char * strInput,char chSrc,char chDes ,char * strOutput),其返回值0表示替换成功,-1表示替换失败。

  思路:逐一检测字符串中符合要求的某字符,相等则存储替换值,不相等则存储字符串的值。

  易错点分析:字符串问题(1)字符串是否为NULL,是否为‘’,是否进行了替换(没有替换,返回-1),保存的字符串最后是否加了‘’;(2)要替换的字符,是否为‘’,被替换的字符串是否为‘’。

int ProcessString( char * strInput,char chSrc,char chDes ,char * strOutput)
{
    if(strInput!=NULL&&strInput[0]!=''&&chSrc!='')
    {
        int i=0;
        int tmp=0;
        while(strInput[i]!='')
        {
            if(strInput[i]==chSrc)
            {
                strOutput[i]=chDes;
                tmp=1;
                if (chDes=='')//其实可以合并进去,因为比较的函数遇到‘’就停止了,所以遇到第一个会自动停止,无需单独考虑;
                {
                    return 0;
                }
            }
            else
                strOutput[i]=strInput[i];
            i++;
        }
        strOutput[i]='';
        if(tmp==1)
            return 0;
        else//无替换情况的讨论;
            return -1;
    }
    else
        return -1;
    
}
原文地址:https://www.cnblogs.com/Sophie-nature/p/3681615.html