欢迎访问宙启技术站
智能推送

C语言实现字符串替换的示例代码

发布时间:2023-05-14 05:16:54

字符串替换是指将字符串中指定的字符或子字符串替换为另一个字符或字符串。C语言实现字符串替换可以使用内置的字符串处理函数,例如strcat、strcpy和strchr等,也可以自己编写代码实现。

下面是一份示例代码,实现将字符串中的指定字符替换为另一个字符:

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

void replaceChar(char *str, char find, char replace){
    int len = strlen(str);
    for(int i = 0; i < len; i++){
        if(str[i] == find){
            str[i] = replace;
        }
    }
}

int main(){
    char str[] = "Hello World!";
    printf("Original string: %s
", str);

    replaceChar(str, 'l', 'k');
    printf("After replacing 'l' with 'k': %s
", str);

    return 0;
}

代码中使用了自定义的replaceChar函数,该函数接收三个参数:字符串指针,要查找的字符,替换为的字符。函数遍历字符串中的每个字符,如果与要查找的字符相同,则将其替换为指定的字符。

在main函数中,首先定义一个字符串,然后调用replaceChar函数将字符串中的所有小写字母l替换为k,并输出替换后的字符串。

下面是另一份示例代码,实现将字符串中的指定子字符串替换为另一个字符串:

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

void replaceString(char *str, const char *find, const char *replace){
    int len = strlen(str);
    int findLen = strlen(find);
    int replaceLen = strlen(replace);

    for(int i = 0; i < len; i++){
        if(strncmp(&str[i], find, findLen) == 0){
            char temp[1000];
            memset(temp, '\0', sizeof(temp));
            strncpy(temp, str, i);
            strcat(temp, replace);
            strcat(temp, &str[i+findLen]);
            strcpy(str, temp);
            len = strlen(str);
            i += replaceLen - 1;
        }
    }
}

int main(){
    char str[] = "Hello World!";
    printf("Original string: %s
", str);

    replaceString(str, "Hello", "Hi");
    printf("After replacing 'Hello' with 'Hi': %s
", str);

    return 0;
}

代码中使用了自定义的replaceString函数,该函数接收三个参数:字符串指针,要查找的子字符串,替换为的字符串。函数遍历字符串中的每个字符,如果与要查找的子字符串相同,则将其替换为指定的字符串。需要注意的是,在替换字符串之后,还需要重新计算字符串的长度和位置指针。

在main函数中,首先定义一个字符串,然后调用replaceString函数将字符串中的Hello替换为Hi,并输出替换后的字符串。

以上为两份C语言实现字符串替换的示例代码,分别实现了替换指定字符和替换指定子字符串的功能。可以根据实际需求进行修改和优化。