最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C語言實現(xiàn)字符串替換的示例代碼

 更新時間:2022年01月09日 09:42:23   作者:bufanq  
本文主要介紹了C語言實現(xiàn)字符串替換的示例代碼,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下

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

關鍵點:

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

/*-------------------------------------------------
功能:實現(xiàn)字符串的替換
描述:第一行輸入原字符串,第二行輸入要替換字符串,
第三行輸入新的字符串
輸入示例:
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'; // 將字符數(shù)組變成字符串
? ? ? ? ? ? ? ? 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'; // 將字符數(shù)組變成字符串
? ? ? ? ? ? ? ? gap = strlen(str2);
? ? ? ? ? ? }
? ? ? ? }else{
? ? ? ? ? ? gap = 1;
? ? ? ? }
? ? }
? ? if(count == 0){
? ? ? ? printf("Can't find the replaced string!\n");
? ? }
? ? return;
}

到此這篇關于C語言實現(xiàn)字符串替換的示例代碼的文章就介紹到這了,更多相關C語言 字符串替換內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • OpenCV基于背景減除實現(xiàn)行人計數(shù)

    OpenCV基于背景減除實現(xiàn)行人計數(shù)

    本文主要介紹了如何使用OpenCV C++對視頻中的人流量進行統(tǒng)計。文中的示例代碼講解詳細,對我們學習OpenCV有一定的幫助,需要的可以了解一下
    2022-01-01
  • C語言單鏈表實現(xiàn)通訊錄管理系統(tǒng)

    C語言單鏈表實現(xiàn)通訊錄管理系統(tǒng)

    這篇文章主要為大家詳細介紹了C語言單鏈表實現(xiàn)通訊錄管理系統(tǒng),文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-05-05
  • C++11中使用using的方法

    C++11中使用using的方法

    在 C++ 中 using 用于聲明命名空間,使用命名空間也可以防止命名沖突。這篇文章主要介紹了C++11中使用using的方法,需要的朋友可以參考下
    2021-09-09
  • C語言實現(xiàn)頁面置換算法(FIFO、LRU)

    C語言實現(xiàn)頁面置換算法(FIFO、LRU)

    這篇文章主要介紹了通過C語言實現(xiàn)的兩種頁面置換算法:先進先出(FIFO)頁面置換算法和最近最久未使用(LRU)頁面置換算法。文中的代碼具有一定的學習或工作價值,快來跟隨小編學習一下吧
    2021-12-12
  • C++指針學習詳解

    C++指針學習詳解

    指針在 C\C++ 語言中是很重要的內容,并且和指針有關的內容一向令初學者頭大,這篇文章主要給大家介紹了關于C/C++中指針的相關資料,需要的朋友可以參考下
    2021-09-09
  • c++中queue用法超詳細講解(入門必看!)

    c++中queue用法超詳細講解(入門必看!)

    queue是一種容器轉換器模板,調用#include< queue>即可使用隊列類,下面這篇文章主要給大家介紹了關于c++中queue用法超詳細講解的相關資料,需要的朋友可以參考下
    2022-10-10
  • C++ 算法之希爾排序詳解及實例

    C++ 算法之希爾排序詳解及實例

    這篇文章主要介紹了C++ 算法之希爾排序算法詳解及實例的相關資料,需要的朋友可以參考下
    2017-05-05
  • STL 的string類怎么啦

    STL 的string類怎么啦

    在我們研究string類犯了什么毛病之前,還讓我先說一下如何了解一個C++的類。我們要了解一個C++的類,一般來說,要從三個方面入手
    2013-11-11
  • 嵌入式C語言查表法在項目中的應用

    嵌入式C語言查表法在項目中的應用

    今天小編就為大家分享一篇關于嵌入式C語言查表法在項目中的應用,小編覺得內容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2018-12-12
  • C語言排序算法之選擇排序(直接選擇排序,堆排序)

    C語言排序算法之選擇排序(直接選擇排序,堆排序)

    這篇文章主要介紹了C語言排序算法之選擇排序(直接選擇排序,堆排序),堆排序使用堆來選數(shù),效率高很多,更多相關內容需要的小伙伴可以參考一下
    2022-07-07

最新評論

平泉县| 饶河县| 新乡县| 荥阳市| 桑日县| 天峻县| 连南| 扶沟县| 平原县| 唐山市| 府谷县| 葵青区| 天峻县| 阜新市| 襄垣县| 友谊县| 班玛县| 台江县| 武平县| 镇安县| 霸州市| 女性| 九龙县| 九龙县| 百色市| 大宁县| 丰台区| 济宁市| 子洲县| 花垣县| 小金县| 平塘县| 临沂市| 繁峙县| 朝阳市| 玉溪市| 苍山县| 酉阳| 定西市| 盐源县| 崇义县|