中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

C語言實現字符串替換的示例代碼怎么寫

發布時間:2022-01-10 00:40:33 來源:億速云 閱讀:197 作者:柒染 欄目:開發技術

本篇文章給大家分享的是有關C語言實現字符串替換的示例代碼怎么寫,小編覺得挺實用的,因此分享給大家學習,希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。

 替換,意思就是用另一個字符串str3來替換str1中所有的str2。替換過程和查找的過程可以合并在一起,在上面循環查找的過程中,每找到一個str2,就把它替換為str3,替換后移動指針p。替換的情況分好幾種:一種是str2和str3的長度相同,一種是str3比str2長,一種是str3比str2短。第一種情況比較簡單,直接使用strncpy函數就可以,后面兩種情況,都需要把str1中的元素進行移動。比如,在上面的例子中,str2=“the”,假設str3 =“this”,str3比str2長,為了有足夠的空間,每找到一個the,從the后面的字符開始到結尾的‘\0’都要往后移動1個字節,也就是給this騰出4個字節的地方來(the的3個字節加移出來的1個字節)。假設str3 =“ok”,str3比str2短,為了填補空缺,每找到一個the,從the后面的字符開始到結尾的‘\0’都要往前移動1個字節,也就是給ok留出兩個字節的地方就夠了。移動過后,使用strncpy函數把str3拷貝到str2所在的地方。下面的程序中,str_replace就是用來實現替換功能的。

關鍵點:

注意字符數組與字符串的區別;在字符數組最后一個字符后面加上’\0’就構成了一個字符串。

/*-------------------------------------------------
功能:實現字符串的替換
描述:第一行輸入原字符串,第二行輸入要替換字符串,
第三行輸入新的字符串
輸入示例:
There is an orange, do you want to eat it?
orange
apple
輸出示例:
There is an apple, do you want to eat it?
Author: Zhang Kaizhou
Date: 2019-8-9 11:11:32
--------------------------------------------------*/

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAXSIZE 300

void str_replace(char * str1, char * str2, char * str3);

int main(){
    char str1[MAXSIZE];
    char str2[MAXSIZE];
    char str3[MAXSIZE];
    gets(str1);
    gets(str2);
    gets(str3);
    str_replace(str1, str2, str3);
    puts(str1);

    return 0;
}

void str_replace(char * str1, char * str2, char * str3){
    int i, j, k, done, count = 0, gap = 0;
    char temp[MAXSIZE];
    for(i = 0; i < strlen(str1); i += gap){
        if(str1[i] == str2[0]){
            done = 0;
            for(j = i, k = 0; k < strlen(str2); j++, k++){
                if(str1[j] != str2[k]){
                    done = 1;
                    gap = k;
                    break;
                }
            }
            if(done == 0){ // 已找到待替換字符串并替換
                for(j = i + strlen(str2), k = 0; j < strlen(str1); j++, k++){ // 保存原字符串中剩余的字符
                    temp[k] = str1[j];
                }
                temp[k] = '\0'; // 將字符數組變成字符串
                for(j = i, k = 0; k < strlen(str3); j++, k++){ // 字符串替換
                    str1[j] = str3[k];
                    count++;
                }
                for(k = 0; k < strlen(temp); j++, k++){ // 剩余字符串回接
                    str1[j] = temp[k];
                }
                str1[j] = '\0'; // 將字符數組變成字符串
                gap = strlen(str2);
            }
        }else{
            gap = 1;
        }
    }
    if(count == 0){
        printf("Can't find the replaced string!\n");
    }
    return;
}

以上就是C語言實現字符串替換的示例代碼怎么寫,小編相信有部分知識點可能是我們日常工作會見到或用到的。希望你能通過這篇文章學到更多知識。更多詳情敬請關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

南城县| 姚安县| 宁津县| 安康市| 和平区| 威远县| 应城市| 和平县| 石狮市| 板桥市| 麻城市| 洛浦县| 临沂市| 镇安县| 瓦房店市| 鄄城县| 三台县| 陕西省| 乌拉特中旗| 建德市| 桃源县| 米易县| 福贡县| 吴旗县| 吉木萨尔县| 昭苏县| 庆阳市| 乌什县| 海丰县| 青州市| 滦平县| 夏河县| 仙桃市| 城步| 翁源县| 太仓市| 三都| 含山县| 罗江县| 静安区| 连平县|