每日一题:华为初级题库——字符串替换
<题目要求>
替换一个字符串中的某个特定字符为另一个字符,能返回是否替换成功,已经替换成功后的字符串;
函数参数为一个字符串,一个要被替换的字符,被替换成的字符,输出的字符串,表示形式为:
int ProcessString( char * strInput,char chSrc,char chDes ,char * strOutput),其返回值0表示替换成功,-1表示替换失败。
思路:逐一检测字符串中符合要求的某字符,相等则存储替换值,不相等则存储字符串的值。
易错点分析:字符串问题(1)字符串是否为NULL,是否为‘\0’,是否进行了替换(没有替换,返回-1),保存的字符串最后是否加了‘\0’;(2)要替换的字符,是否为‘\0’,被替换的字符串是否为‘\0’。
int ProcessString( char * strInput,char chSrc,char chDes ,char * strOutput) { if(strInput!=NULL&&strInput[0]!='\0'&&chSrc!='\0') { int i=0; int tmp=0; while(strInput[i]!='\0') { if(strInput[i]==chSrc) { strOutput[i]=chDes; tmp=1; if (chDes=='\0')//其实可以合并进去,因为比较的函数遇到‘\0’就停止了,所以遇到第一个会自动停止,无需单独考虑; { return 0; } } else strOutput[i]=strInput[i]; i++; } strOutput[i]='\0'; if(tmp==1) return 0; else//无替换情况的讨论; return -1; } else return -1; }