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

Linux C字符串替換函數(shù)實例詳解

 更新時間:2017年01月28日 09:48:05   投稿:lqh  
這篇文章主要介紹了Linux C字符串替換函數(shù)實例詳解的相關(guān)資料,需要的朋友可以參考下

Linux C字符串替換函數(shù)實例詳解

               最近學習linux 的基礎(chǔ)編程知識,字符串替換函數(shù),在網(wǎng)上找下資料,覺得這篇文章寫的不錯,記錄下來,和大家分享一下:

實例代碼:

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

 

/**
*
* @author: cnscn@163.com
* @reference: lovesnow1314@http://community.csdn.net/Expert/TopicView3.asp?id=5198221 
*
* 用新子串newstr替換源字符串src中的前l(fā)en個字符內(nèi)所包含的oldstr子串
*
* @param char* dest 目標串,也就是替換后的新串
* @param const char* src 源字符串,被替換的字符串
* @param const char* oldstr 舊的子串,將被替換的子串
* @param const char* newstr 新的子串
* @param int len 將要被替換的前l(fā)en個字符
*
* @return char* dest 返回新串的地址
*
*/
char *strreplace(char *dest, char *src, const char *oldstr, const char *newstr, size_t len)
{
//如果串相等,則直接返回
if(strcmp(oldstr, newstr)==0)
return src;

//子串位置指針
char *needle;

//臨時內(nèi)存區(qū)
char *tmp;

//把源串地址賦給指針dest,即讓dest和src都指向src的內(nèi)存區(qū)域
dest = src;

//如果找到子串, 并且子串位置在前l(fā)en個子串范圍內(nèi), 則進行替換, 否則直接返回
while((needle = strstr(dest, oldstr)) && (needle -dest <= len))
{
//分配新的空間: +1 是為了添加串尾的'\0'結(jié)束符
tmp=(char*)malloc(strlen(dest)+(strlen(newstr)-strlen(oldstr))+1);

//把src內(nèi)的前needle-dest個內(nèi)存空間的數(shù)據(jù),拷貝到arr
strncpy(tmp, dest, needle-dest);

//標識串結(jié)束
tmp[needle-dest]='\0';

//連接arr和newstr, 即把newstr附在arr尾部, 從而組成新串(或說字符數(shù)組)arr
strcat(tmp, newstr);

//把src中 從oldstr子串位置后的部分和arr連接在一起,組成新串a(chǎn)rr
strcat(tmp, needle+strlen(oldstr));

//把用malloc分配的內(nèi)存,復制給指針retv
dest = strdup(tmp);

//釋放malloc分配的內(nèi)存空間
free(tmp);
}

return dest;
}

int main()
{
char *str="wo i love iyou";
char *old="i";
char *new="ILOVEYOUYA";

char *dest;
//分配內(nèi)存空間: 大小 == src的長度 + newstr和oldstr長度差(可能是正負或0)+1
printf("%s\n",strreplace(dest, str, old, new,1));
printf("%s\n",strreplace(dest, str, old, new,5));
printf("%s\n",strreplace(dest, str, old, new,40));

return 0;
}

感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!

相關(guān)文章

  • Linux系統(tǒng)下部署項目的設(shè)置方法

    Linux系統(tǒng)下部署項目的設(shè)置方法

    這篇文章主要介紹了Linux系統(tǒng)下部署項目的教程詳解,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下
    2018-10-10
  • 一文詳解Linux三種網(wǎng)絡(luò)設(shè)置方式

    一文詳解Linux三種網(wǎng)絡(luò)設(shè)置方式

    我們在使用虛擬機搭建linux系統(tǒng)后,常常需要設(shè)置系統(tǒng)網(wǎng)絡(luò)連接,以方便系統(tǒng)進行上網(wǎng)或其他系統(tǒng)連接系統(tǒng)進行操作,在linux中網(wǎng)絡(luò)連接分了三類:橋接模式,僅主機模式,NAT模式,本文我們將對這三種模式進行講解,感興趣的同學可以參考閱讀
    2023-06-06
  • Linux下簡易進度條的實現(xiàn)代碼

    Linux下簡易進度條的實現(xiàn)代碼

    下面小編就為大家?guī)硪黄狶inux下簡易進度條的實現(xiàn)代碼。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-01-01
  • Linux使用crontab實現(xiàn)定時拆分日志與清理過期文件

    Linux使用crontab實現(xiàn)定時拆分日志與清理過期文件

    crontab是一個用于管理定時任務(wù)的工具,可以讓在特定的時間間隔內(nèi)自動運行腳本或命令,本文將使用crontab實現(xiàn)定時拆分日志與清理過期文件,需要的可以參考下
    2024-04-04
  • Centos 7.4中的遠程訪問控制的實現(xiàn)方法

    Centos 7.4中的遠程訪問控制的實現(xiàn)方法

    這篇文章主要介紹了Centos 7.4中的遠程訪問控制的實現(xiàn)方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-11-11
  • SpringBoot + Vue 項目部署上線到Linux 服務(wù)器的教程詳解

    SpringBoot + Vue 項目部署上線到Linux 服務(wù)器的教程詳解

    這篇文章主要介紹了SpringBoot + Vue 項目部署上線到Linux 服務(wù)器,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-08-08
  • 查看Linux OS內(nèi)核與版本的幾種命令分享

    查看Linux OS內(nèi)核與版本的幾種命令分享

    文章總結(jié)了四種在Linux操作系統(tǒng)中查看內(nèi)核和版本的方法,并強調(diào)了個人經(jīng)驗的價值,鼓勵大家參考和使用
    2024-11-11
  • Centos7下用戶登錄失敗N次后鎖定用戶禁止登陸的方法

    Centos7下用戶登錄失敗N次后鎖定用戶禁止登陸的方法

    這篇文章主要給大家介紹了關(guān)于在Centos7系統(tǒng)下用戶登錄失敗N次后鎖定用戶禁止登陸的相關(guān)資料,文中先對PAM的配置文件進行了簡單的介紹,然后通過示例代碼將實現(xiàn)的方法介紹的非常詳細,對大家的學習或者工作具有一定的參考價值,需要的朋友們下面隨著小編來一起看看吧。
    2018-01-01
  • linux下如何創(chuàng)建守護進程的步驟

    linux下如何創(chuàng)建守護進程的步驟

    本篇文章主要介紹了linux下如何創(chuàng)建守護進程的步驟,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-07-07
  • Linux/Unix關(guān)于時間和時間戳的命令行

    Linux/Unix關(guān)于時間和時間戳的命令行

    這篇文章主要介紹了Linux/Unix關(guān)于時間和時間戳的命令行以及輸出的樣式區(qū)別,一起來學習下吧。
    2017-12-12

最新評論

大安市| 杭锦后旗| 子洲县| 修武县| 安岳县| 南木林县| 商都县| 四平市| 郁南县| 石嘴山市| 庆城县| 千阳县| 宣恩县| 南安市| 青河县| 凌云县| 河南省| 巴彦淖尔市| 临朐县| 绍兴县| 西乌珠穆沁旗| 当雄县| 邯郸市| 广宁县| 桃园县| 兴文县| 灯塔市| 青阳县| 广南县| 扎兰屯市| 南澳县| 同仁县| 三门峡市| 阿拉善右旗| 保亭| 波密县| 兰溪市| 东至县| 桐梓县| 盘锦市| 阿拉尔市|