成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

c語(yǔ)言中字符串入替換函數(shù) C語(yǔ)言字符串替換函數(shù)

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

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

河源ssl適用于網(wǎng)站、小程序/APP、API接口等需要進(jìn)行數(shù)據(jù)傳輸應(yīng)用場(chǎng)景,ssl證書(shū)未來(lái)市場(chǎng)廣闊!成為創(chuàng)新互聯(lián)公司的ssl證書(shū)銷售渠道,可以享受市場(chǎng)價(jià)格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:028-86922220(備注:SSL證書(shū)合作)期待與您的合作!

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

/*descript:replace?str,返回一個(gè)替換以后的字符串,用完之后要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語(yǔ)言 字符串替換函數(shù)

替換函數(shù)主要有strtr(),str_repalce()這兩個(gè)函數(shù)。

首先針對(duì)strtr函數(shù)第一種方式:

我們看看下面的舉例:

?php

echo strtr("I Love you","Lo","lO");

?

得到的結(jié)果是:

I lOve yOu

這個(gè)結(jié)果提醒我們:

1.strtr它是區(qū)分大小寫(xiě)的

2.strtr的替換是很特殊的,你注意看后面那個(gè)yOu,中間的O被替換的,這顯然不是我們的本意。

再舉一個(gè)特殊例子,說(shuō)明這個(gè)php的sttr函數(shù)的怪異

?php

echo strtr("I Love you","Love","");

?

結(jié)果是:

I Love you

什么也不會(huì)改變,所以strtr需要注意的是:

3.不能被替換為空,也就是末位那個(gè)參數(shù)不能是空字符串,當(dāng)然空格是可以的。

再次舉例strtr函數(shù)的另一種情況:

?php

echo strtr("I Loves you","Love","lOvEA");

?

結(jié)果是:

I lOvEs yOu

注意看第三個(gè)參數(shù)的A,在結(jié)果中并沒(méi)有出現(xiàn)。

4.我不建議用strtr以少換多。

ok,既然這個(gè)strtr函數(shù)挺麻煩為什么還要用呢?

原因是,它的速度很快。據(jù)說(shuō),strtr 比 str_replace 快四倍。

5.能用strtr函數(shù)的時(shí)候一定要用。

第二種情況:

strtr(string,array)

6.strtr符合意愿的使用方法

?php

$table_change = array('you'='her sister');

echo strtr("I Love you",$table_change);

?

結(jié)果為:

I Love her sister

7.小技巧:你想到替換什么你就往數(shù)組加什么

比如:

?php

$table_change = array('you'='her sister');

$table_change += array('Love' = 'hate');

echo strtr("I Love you",$table_change);

?

結(jié)果是:

I hate her sister

再次提醒那個(gè)Love 寫(xiě)成love 是行不通的哦。

字符串取代。

語(yǔ)法: string str_replace(string needle, string str, string haystack);

返回值: 字符串

函數(shù)種類: 資料處理

內(nèi)容說(shuō)明

本函數(shù)將字符串 str 代入 haystack 字符串中,將所有的 needle 置換成 str。

下例將 %body% 以 black 取代

?php

$bodytag = str_replace("%body%", "black", "body text=%body%");

echo $bodytag;

?

格式:

[@str_replace("要替換的舊內(nèi)容", "要取代原內(nèi)容的新字符", $被替換內(nèi)容的變量名)]

[@str_replace(array('舊1','舊2','舊3'), array('新1','新2','新3'), $被替換內(nèi)容的變量名)]

[@str_replace(array('舊1','舊2','舊3'), '新內(nèi)容', $被替換內(nèi)容的變量名)]

實(shí)例:

多對(duì)一替換:想把內(nèi)容字段里所有的p/p標(biāo)簽清除掉,替換成空 [@str_replace(array('p','/p'), '', $Content)]

一對(duì)一替換:想把內(nèi)容字段里所有的br標(biāo)簽換成p [@str_replace('br', 'p', $Content)]

多對(duì)多替換:想把內(nèi)容字段里的br換成br /, 同時(shí)p換hr,把/p全清除 [@str_replace(array('br', 'p','/p'), array('br /','hr',''), $Content)]

c語(yǔ)言運(yùn)用函數(shù)替換字符串中的數(shù)字求助大佬

#include stdio.h

#define N 80

/* 請(qǐng)?jiān)谶@里填寫(xiě)答案 */

void f(char *c,char a)

{

for(;*c;c++)

? if(*c='0'*c='9')

? ? ? *c=a;

}

int main(void)

{

char c[N], a;

gets(c);

scanf("%c", a);

f(c, a);

printf("%s", c);

return 0;

}

C語(yǔ)言字符串替換

C語(yǔ)言實(shí)現(xiàn)字符串替換函數(shù):

#include stdio.h

#include stdlib.h

#include ctype.h

#include string.h

//字符串替換函數(shù)

/********************************************************************

* Function: my_strstr()

* Description: 在一個(gè)字符串中查找一個(gè)子串;

* Input: ps: 源; pd:子串

* Return : 0:源字符串中沒(méi)有子串; 1:源字符串中有子串;

*********************************************************************/

char * my_strstr(char * ps,char *pd)

{

char *pt = pd;

int c = 0;

while(*ps != '\0')

{

if(*ps == *pd)

{

while(*ps == *pd *pd!='\0')

{

ps++;

pd++;

c++;

}

}else

{

ps++;

}

if(*pd == '\0')

{

return (ps - c);

}

c = 0;

pd = pt;

}

return 0;

}

/********************************************************************

* Function: memcpy()

* Description: 復(fù)制一個(gè)內(nèi)存區(qū)域到另一個(gè)區(qū)域;

* Input: src: 源;

count: 復(fù)制字節(jié)數(shù).

* Output: dest: 復(fù)制目的地;

* Return : dest;

*********************************************************************/

void * memcpy(void * dest,const void *src,size_t count)

{

char *tmp = (char *) dest, *s = (char *) src;

while (count--)

*tmp++ = *s++;

return dest;

}

/********************************************************************

* Function: str_replace()

* Description: 在一個(gè)字符串中查找一個(gè)子串,并且把所有符合的子串用

另一個(gè)替換字符串替換。

* Input: p_source:要查找的母字符串; p_seach要查找的子字符串;

p_repstr:替換的字符串;

* Output: p_result:存放結(jié)果;

* Return : 返回替換成功的子串?dāng)?shù)量;

* Others: p_result要足夠大的空間存放結(jié)果,所以輸入?yún)?shù)都要以\0結(jié)束;

*********************************************************************/

int str_replace(char *p_result,char* p_source,char* p_seach,char *p_repstr)

{

int c = 0;

int repstr_leng = 0;

int searchstr_leng = 0;

char *p1;

char *presult = p_result;

char *psource = p_source;

char *prep = p_repstr;

char *pseach = p_seach;

int nLen = 0;

repstr_leng = strlen(prep);

searchstr_leng = strlen(pseach);

do{

p1 = my_strstr(psource,p_seach);

if (p1 == 0)

{

strcpy(presult,psource);

return c;

}

c++; //匹配子串計(jì)數(shù)加1;

printf("結(jié)果:%s\r\n",p_result);

printf("源字符:%s\r\n",p_source);

// 拷貝上一個(gè)替換點(diǎn)和下一個(gè)替換點(diǎn)中間的字符串

nLen = p1 - psource;

memcpy(presult, psource, nLen);

// 拷貝需要替換的字符串

memcpy(presult + nLen,p_repstr,repstr_leng);

psource = p1 + searchstr_leng;

presult = presult + nLen + repstr_leng;

}while(p1);

return c;

}

#define MAX 200

int main(void)

{

int i = 0;

char s[MAX] ={0}; //存放源字串

char s1[MAX]={0}; //存放子字串

char s2[MAX]={0}; //存放替換字串

char result_a[2000] = {0};//存放替換結(jié)果;

char *p,*ptm,*pr;

puts("Please input the string for s:");

scanf("%s",s);

puts("Please input the string for s1:");

scanf("%s",s1);

puts("Please input the string for s2:");

scanf("%s",s2);

ptm = s;

pr = result_a;

i = str_replace(pr,ptm,s1,s2);

printf("替換%d個(gè)子字符串;\r\n",i);

printf("替換后結(jié)果:%s\r\n",result_a);

system("pause");

}

在 C語(yǔ)言中字符串的替換如何實(shí)現(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、然后輸入:

//獲取各個(gè)字符串的長(zhǎng)度

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、然后輸入:

//如果搜索成功,則進(jìn)行替換

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語(yǔ)言中字符串入替換函數(shù) C語(yǔ)言字符串替換函數(shù)
文章鏈接:http://jinyejixie.com/article36/hpsosg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供外貿(mào)網(wǎng)站建設(shè)網(wǎng)站建設(shè)、企業(yè)建站微信公眾號(hào)、網(wǎng)頁(yè)設(shè)計(jì)公司定制網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都網(wǎng)頁(yè)設(shè)計(jì)公司
尉犁县| 富平县| 大足县| 邹平县| 汾西县| 永嘉县| 日照市| 日照市| 仪陇县| 东源县| 邻水| 永嘉县| 西丰县| 沽源县| 福海县| 资中县| 沁源县| 台中县| 获嘉县| 云林县| 镶黄旗| 钟山县| 阿荣旗| 石屏县| 景东| 宜丰县| 岗巴县| 克东县| 陇川县| 陇南市| 侯马市| 闽侯县| 鄄城县| 静安区| 淄博市| 浠水县| 淳安县| 垣曲县| 莎车县| 英德市| 溧阳市|