c语言中完成一个自定义函数,替换指定字符串中的对应字符的代码

如何编写,谢谢大神们了

#include "stdafx.h"
#include <stdio.h>
#include <string.h>

void replaceChar(char *string, char oldChar, char newChar){
    int len = strlen(string);
    int i;
    for (i = 0; i < len; i++){
        if (string[i] == oldChar){
            string[i] = newChar;
        }
    }
}

int main(){
    
    char str[] = "test";
    char oldChar = 't';
    char newChar = 'w'; 

    replaceChar(str, oldChar, newChar);
    printf("%s\n", str);
    return 0;

}

追问

能定义两个字符串进行替换吗,谢谢了,大神

追答
#include <stdio.h>
#include <string.h>

void replaceStr(char *string, char *oldStr, char *newStr){
    char *index;
    index = strstr(string, oldStr);
    int indexOfSubString = strlen(string)-strlen(index);
    
    char firstPart[80]="";
    int i;
    for (i = 0; i < indexOfSubString; i++){
        firstPart[i] = string[i];
    }
    strcat(firstPart, newStr);
    
    int indexOfLastPart = indexOfSubString + strlen(oldStr);
    
    char lastPart[80] = "";
    int count=0;
    for (i = indexOfLastPart; i < strlen(string); i++,count++){
        lastPart[count] = string[i];
    }
    strcat(firstPart, lastPart);
    printf("%s\n", firstPart);
}

int main(){
    
    char str[] = "baiduzhidao";
    char oldStr[] = "idao";
    char newStr[] = "oudong"; 

    replaceStr(str, oldStr, newStr);
    
    return 0;
}

温馨提示:答案为网友推荐,仅供参考
第1个回答  2017-07-10
BOOL strrep(char* strRes,char* from, char* to)

{

    int i;

    BOOL flag = 0;

    char *p,*q,*ts;

    for(i = 0; strRes[i]; ++i)

    {

        if(strRes[i] == from[0])

        {

            p = strRes + i;

            q = from;

            while(*q && (*p++ == *q++));

            if(*q == '\0')

            {

                ts = (char *)malloc(strlen(strRes) + 1);//分配内存                strcpy(ts,p);//复制字符串
                strRes[i] = '\0';

                strcat(strRes,to);//连接字符串
                strcat(strRes,ts);

                free(ts);//释放内存
                flag = 1;//成功
            }

        }

    }

    return flag;/*返回是否成功*/

}

第2个回答  2017-07-26

#include "stdafx.h"
#include <stdio.h>
#include <string.h>

void replaceChar(char *string, char oldChar, char newChar){
    int len = strlen(string);
    int i;
    for (i = 0; i < len; i++){
        if (string[i] == oldChar){
            string[i] = newChar;
        }
    }
}

int main(){
    
    char str[] = "test";
    char oldChar = 't';
    char newChar = 'w'; 

    replaceChar(str, oldChar, newChar);
    printf("%s\n", str);
    return 0;

}

第3个回答  2017-06-30
逐个比较字符串里的字符,找到一个需要替换的就替换,直到字符串结束
int tihuan(char *string, char tihuan, char beitihuan, int len)

{
int i;

for (i = 0; i < len; i++) {
if (string[i] == tihuan) {
string[i] = beitihuan;

}

}

return 0;

}
相似回答