真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

c語言程序字符串替換函數(shù) c語言字符串替換指定字符

求C語言替換字符串中某個字符的函數(shù)

1、C語言中沒有提供字符串替換函數(shù),網(wǎng)上能找到的類似函數(shù)也只是能替換一個,不能替換全部,工作中卻常常要用到這個功能,故實現(xiàn)一個函數(shù)。該函數(shù)所使用到的相關(guān)函數(shù)均是自己實現(xiàn),沒有調(diào)用庫函數(shù)。

成都網(wǎng)站建設(shè)哪家好,找創(chuàng)新互聯(lián)!專注于網(wǎng)頁設(shè)計、網(wǎng)站建設(shè)公司、微信開發(fā)、小程序設(shè)計、集團成都定制網(wǎng)頁設(shè)計等服務(wù)項目。核心團隊均擁有互聯(lián)網(wǎng)行業(yè)多年經(jīng)驗,服務(wù)眾多知名企業(yè)客戶;涵蓋的客戶類型包括:成都公路鉆孔機等眾多領(lǐng)域,積累了大量豐富的經(jīng)驗,同時也獲得了客戶的一致贊美!

2、函數(shù)代碼如下:

/*descript:replace?str,返回一個替換以后的字符串,用完之后要free()

success:return?1

error:return?0

BUG:"select?*?from?tab?where?id=':a'?and?name?=':aa'",this?is?not?support,this?function?is?just?simple?str_replace?,not?support?all?SQL?language

*/

char?*replacestr(char?*strbuf,?char?*sstr,?char?*dstr)

{???????char?*p,*p1;

int?len;

if?((strbuf?==?NULL)||(sstr?==?NULL)||(dstr?==?NULL))

return?NULL;

p?=?strstr(strbuf,?sstr);???????//返回字符串第一次出現(xiàn)的地址,否則返回NULL

if?(p?==?NULL)??/*not?found*/

return?NULL;

len?=?strlen(strbuf)?+?strlen(dstr)?-?strlen(sstr);

p1?=?malloc(len);

bzero(p1,?len);

strncpy(p1,?strbuf,?p-strbuf);

strcat(p1,?dstr);

p?+=?strlen(sstr);

strcat(p1,?p);

return?p1;

}

在 C語言中字符串的替換如何實現(xiàn)的!

1、首先輸入代碼:

#include string.h

#include stdio.h

/**

* 參數(shù):

* originalString[] :原始字符串

* key[] : 待替換的字符串

* swap[] : 新字符串

*/

void replace(char originalString[], char key[], char swap[]){

int lengthOfOriginalString, lengthOfKey, lengthOfSwap, i, j , flag;

char tmp[1000];

2、然后輸入:

//獲取各個字符串的長度

lengthOfOriginalString = strlen(originalString);

lengthOfKey = strlen(key);

lengthOfSwap = strlen(swap);

for( i = 0; i = lengthOfOriginalString - lengthOfKey; i++){

flag = 1;

//搜索key

for(j? = 0; j lengthOfKey; j ++){

if(originalString[i + j] != key[j]){

flag = 0;

break;

}

}

3、然后輸入:

//如果搜索成功,則進行替換

if(flag){

strcpy(tmp, originalString);

strcpy(tmp[i], swap);

strcpy(tmp[i + lengthOfSwap], originalString[i? + lengthOfKey]);

strcpy(originalString, tmp);

i += lengthOfSwap - 1;

lengthOfOriginalString = strlen(originalString);

}

}

}

4、然后輸入:

/**

* main function

*/

int main(){

char originalString[1000] = {"abcfffffabcfffffabcfffff"};

char key[] = {"abc"};

char swap[] = {"aabbcc"};

replace(originalString, key, swap);

printf("%s\n", originalString);

return 0;

}

5、這樣就完成了。

c語言:如何將字符串中指定的字符替換為另一個指定字符

/*功能:將str字符串中的oldstr字符串替換為newstr字符串

*參數(shù):str:操作目標(biāo)oldstr:被替換者newstr:替換者

*返回值:返回替換之后的字符串

*版本:V0.2

*/

char*strrpc(char*str,char*oldstr,char*newstr){

char bstr[strlen(str)];//轉(zhuǎn)換緩沖區(qū)

memset(bstr,0,sizeof(bstr));

for(int i=0;ilt;strlen(str);i++){

if(!strncmp(str+i,oldstr,strlen(oldstr))){//查找目標(biāo)字符串

strcat(bstr,newstr);

i+=strlen(oldstr)-1;

}else{

strncat(bstr,str+i,1);//保存一字節(jié)進緩沖區(qū)

}

}

strcpy(str,bstr);

return str;

}

擴展資料:

c_str函數(shù)的返回值是constchar*的,不能直接賦值給char*,所以就需要我們進行相應(yīng)的操作轉(zhuǎn)化,下面就是這一轉(zhuǎn)化過程。

c++語言提供了兩種字符串實現(xiàn),其中較原始的一種只是字符串的c語言實現(xiàn)。與C語言的其他部分一樣,它在c++的所有實現(xiàn)中可用,我們將這種實現(xiàn)提供的字符串對象,歸為c-串,每個c-串char*類型的。

標(biāo)準(zhǔn)頭文件lt;cstringgt;包含操作c-串的函數(shù)庫。這些庫函數(shù)表達了我們希望使用的幾乎每種字符串操作。

當(dāng)調(diào)用庫函數(shù),客戶程序提供的是string類型參數(shù),而庫函數(shù)內(nèi)部實現(xiàn)用的是c-串,因此需要將string對象,轉(zhuǎn)化為char*對象,而c_str()提供了這樣一種方法,它返回const char*類型(可讀不可改)的指向字符數(shù)組的指針。例:

#includelt;iostreamgt;

//#includelt;cstringgt;

#includelt;stringgt;//使用頭文件string,否則最后coutlt;lt;無法輸出add_to

using namespace std;

int main()

{

string add_to="hello!";

const string add_on="baby";

const char*cfirst=add_to.c_str();

const char*csecond=add_on.c_str();

char*copy=new char[strlen(cfirst)+strlen(csecond)+1];

strcpy(copy,cfirst);

strcat(copy,csecond);

add_to=copy;

coutlt;lt;"copy:"lt;lt;copylt;lt;endl;

delete[]copy;

coutlt;lt;"add_to:"lt;lt;add_tolt;lt;endl;

return 0;

}

例(1)

函數(shù)聲明:const char*c_str();

c_str()函數(shù)返回一個指向正規(guī)C字符串的指針,內(nèi)容與本string串相同.

這是為了與c語言兼容,在c語言中沒有string類型,故必須通過string類對象的成員函數(shù)c_str()把string對象轉(zhuǎn)換成c中的字符串樣式。

注意:一定要使用strcpy()函數(shù)等來操作方法c_str()返回的指針

比如:最好不要這樣:

char*c;

string s="1234";

c=s.c_str();

//c最后指向的內(nèi)容是垃圾,因為s對象被析構(gòu),其內(nèi)容被處理(糾正:s對象的析構(gòu)是在s的生命周期結(jié)束時,例如函數(shù)的返回)

參考資料:

百度百科——c_str


標(biāo)題名稱:c語言程序字符串替換函數(shù) c語言字符串替換指定字符
轉(zhuǎn)載源于:http://weahome.cn/article/ddcpcpd.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部