真实的国产乱Ⅹ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ù)。

創(chuàng)新互聯(lián)建站是一家網(wǎng)站設(shè)計制作、成都網(wǎng)站制作,提供網(wǎng)頁設(shè)計,網(wǎng)站設(shè)計,網(wǎng)站制作,建網(wǎng)站,按需開發(fā),網(wǎng)站開發(fā)公司,2013年至今是互聯(lián)行業(yè)建設(shè)者,服務(wù)者。以提升客戶品牌價值為核心業(yè)務(wù),全程參與項目的網(wǎng)站策劃設(shè)計制作,前端開發(fā),后臺程序制作以及后期項目運營并提出專業(yè)建議和思路。

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語言字符串處理的庫函數(shù)有哪些

函數(shù)名: strrchr

功 能: 在串中查找指定字符的最后一個出現(xiàn)

用 法: char *strrchr(char *str, char c);

舉例:

[cpp] view plain copy

char fullname="./lib/lib1.so";

char *ptr;

ptr = strrchr(fullname,'/');

printf("filename is %s",++ptr);

//運行結(jié)果:filename is lib1.so

函數(shù)名: strchr

功 能: 在串中查找指定字符的第一個出現(xiàn)

用 法: char *strchr(char *str, char c);

舉例:

[cpp] view plain copy

char fullname="./lib/lib1.so";

char *ptr;

ptr = strrchr(fullname,'.');

printf("after strchr() is %s",++ptr);

//運行結(jié)果:after strchr() is /lib/lib1.so

函數(shù)名: strtok

功 能: 在串中查找指定字符的第一個出現(xiàn)

用 法: char *strtok(char *s, char *delim);

說明:

1.strtok函數(shù)的實質(zhì)上的處理是,strtok在s中查找包含在delim中的字符并用NULL(’/0′)來替換,直到找遍整個字符串。這句話有兩層含義:(1)每次調(diào)用strtok函數(shù)只能獲得一個分割單位。(2)要獲得所有的分割單元必須反復(fù)調(diào)用strtok函數(shù)。

2.strtok函數(shù)以后的調(diào)用時的需用NULL來替換s.

3.形參s(要分割的字符串)對應(yīng)的變量應(yīng)用char s[]=”….”形式,而不能用char *s=”….”形式。

舉例:

[cpp] view plain copy

void main()

{

char buf[]=”Golden Global View”;

char* token = strtok( buf, ” “);

while( token != NULL )

{

printf( ”%s “, token );

token = strtok( NULL, ” “);

}

return 0;

}

/*其結(jié)果為:

Golden

Global

View

*/

函數(shù)名:strncpy

功能:把src所指由NULL結(jié)束的字符串的前n個字節(jié)復(fù)制到dest所指的數(shù)組中

用法:char *strncpy(char *dest, char *src, int n);

說明:

如果src的前n個字節(jié)不含NULL字符,則結(jié)果不會以NULL字符結(jié)束。

如果src的長度小于n個字節(jié),則以NULL填充dest直到復(fù)制完n個字節(jié)。

src和dest所指內(nèi)存區(qū)域不可以重疊且dest必須有足夠的空間來容納src的字符串。

返回指向dest的指針。

舉例:

[c-sharp] view plain copy

#include syslib.h

#include string.h

main()

{

char buf[4];

char *s="abcdefg";

strncpy(buf,s,4);

printf("%s/n",buf);

return 0;

}

/*運行結(jié)果:

abcd

*/

函數(shù)名: stpcpy

功 能: 拷貝一個字符串到另一個

用 法: char *stpcpy(char *destin, char *source);

舉例:

[cpp] view plain copy

#include stdio.h

#include string.h

int main(void)

{

char string[10];

char *str1 = "abcdefghi";

stpcpy(string, str1);

printf("%s/n", string);

return 0;

}

/*運行結(jié)果

abcdefghi

*/

函數(shù)名: strcat

功 能: 字符串拼接函數(shù)

用 法: char *strcat(char *destin, char *source);

舉例:

[cpp] view plain copy

#include string.h

#include stdio.h

int main(void)

{

char destination[25];

char *blank = " ", *c = "C++", *Borland = "Borland";

strcpy(destination, Borland);

strcat(destination, blank);

strcat(destination, c);

printf("%s/n", destination);

return 0;

}

/*運行結(jié)果:

Borland C++

*/

函數(shù)名: strcmp

功 能: 串比較

用 法: int strcmp(char *str1, char *str2);

看Asic碼,str1str2,返回值 0;兩串相等,返回0

舉例:

[cpp] view plain copy

#include string.h

#include stdio.h

int main(void)

{

char *buf1 = "aaa", *buf2 = "bbb";

int ptr;

ptr = strcmp(buf2, buf1);

if (ptr 0)

printf("buffer 2 is greater than buffer 1/n");

else if(ptr 0)

printf("buffer 2 is less than buffer 1/n");

else

printf("buffer 2 is equal with buffer 1/n");

return 0;

}

/*運行結(jié)果:

buffer 2 is greater than buffer 1

*/

函數(shù)名: strncmpi

功 能: 將一個串中的一部分與另一個串比較, 不管大小寫

用 法: int strncmpi(char *str1, char *str2, unsigned maxlen);

舉例:

[cpp] view plain copy

#include string.h

#include stdio.h

int main(void)

{

char *buf1 = "BBB", *buf2 = "bbb";

int ptr;

ptr = strcmpi(buf2, buf1);

if (ptr 0)

printf("buffer 2 is greater than buffer 1/n");

if (ptr 0)

printf("buffer 2 is less than buffer 1/n");

if (ptr == 0)

printf("buffer 2 equals buffer 1/n");

return 0;

}

函數(shù)名: strcspn

功 能: 在串中查找第一個給定字符集內(nèi)容的段

用 法: int strcspn(char *str1, char *str2);

舉例:

[cpp] view plain copy

#include stdio.h

#include string.h

#include alloc.h

int main(void)

{

char *string1 = "1234567890";

char *string2 = "747DC8";

int length;

length = strcspn(string1, string2);

printf("Character where strings intersect is at position %d/n", length);

return 0;

}

函數(shù)名: strdup

功 能: 將串拷貝到新建的位置處

用 法: char *strdup(char *str);

舉例:

[cpp] view plain copy

#include stdio.h

#include string.h

#include alloc.h

int main(void)

{

char *dup_str, *string = "abcde";

dup_str = strdup(string);

printf("%s/n", dup_str);

free(dup_str);

return 0;

}

函數(shù)名: stricmp

功 能: 以大小寫不敏感方式比較兩個串

用 法: int stricmp(char *str1, char *str2);

舉例:

[cpp] view plain copy

#include string.h

#include stdio.h

int main(void)

{

char *buf1 = "BBB", *buf2 = "bbb";

int ptr;

ptr = stricmp(buf2, buf1);

if (ptr 0)

printf("buffer 2 is greater than buffer 1/n");

if (ptr 0)

printf("buffer 2 is less than buffer 1/n");

if (ptr == 0)

printf("buffer 2 equals buffer 1/n");

return 0;

}

函數(shù)名: strerror

功 能: 返回指向錯誤信息字符串的指針

用 法: char *strerror(int errnum);

舉例:

[cpp] view plain copy

#include stdio.h

#include errno.h

int main(void)

{

char *buffer;

buffer = strerror(errno);

printf("Error: %s/n", buffer);

return 0;

}

函數(shù)名: strncmp

功 能: 串比較

用 法: int strncmp(char *str1, char *str2, int maxlen);

舉例:

[cpp] view plain copy

#include string.h

#include stdio.h

int main(void)

{

char *buf1 = "aaabbb", *buf2 = "bbbccc", *buf3 = "ccc";

int ptr;

ptr = strncmp(buf2,buf1,3);

if (ptr 0)

printf("buffer 2 is greater than buffer 1/n");

else

printf("buffer 2 is less than buffer 1/n");

ptr = strncmp(buf2,buf3,3);

if (ptr 0)

printf("buffer 2 is greater than buffer 3/n");

else

printf("buffer 2 is less than buffer 3/n");

return(0);

}

函數(shù)名: strncmpi

功 能: 把串中的一部分與另一串中的一部分比較, 不管大小寫

用 法: int strncmpi(char *str1, char *str2, int len);

舉例:

[cpp] view plain copy

#include string.h

#include stdio.h

int main(void)

{

char *buf1 = "BBBccc", *buf2 = "bbbccc";

int ptr;

ptr = strncmpi(buf2,buf1,3);

if (ptr 0)

printf("buffer 2 is greater than buffer 1/n");

if (ptr 0)

printf("buffer 2 is less than buffer 1/n");

if (ptr == 0)

printf("buffer 2 equals buffer 1/n");

return 0;

}

函數(shù)名: strnset

功 能: 將一個串中的所有字符都設(shè)為指定字符

用 法: char *strnset(char *str, char ch, unsigned n);

舉例:

[cpp] view plain copy

#include stdio.h

#include string.h

int main(void)

{

char *string = "abcdefghijklmnopqrstuvwxyz";

char letter = 'x';

printf("string before strnset: %s/n", string);

strnset(string, letter, 13);

printf("string after strnset: %s/n", string);

return 0;

}

函數(shù)名: strpbrk

功 能: 在串中查找給定字符集中的字符

用 法: char *strpbrk(char *str1, char *str2);

舉例:

[cpp] view plain copy

#include stdio.h

#include string.h

int main(void)

{

char *string1 = "abcdefghijklmnopqrstuvwxyz";

char *string2 = "onm";

char *ptr;

ptr = strpbrk(string1, string2);

if (ptr)

printf("strpbrk found first character: %c/n", *ptr);

else

printf("strpbrk didn't find character in set/n");

return 0;

}

函數(shù)名: strrev

功 能: 串倒轉(zhuǎn)

用 法: char *strrev(char *str);

舉例:

[cpp] view plain copy

#include string.h

#include stdio.h

int main(void)

{

char *forward = "string";

printf("Before strrev(): %s/n", forward);

strrev(forward);

printf("After strrev(): %s/n", forward);

return 0;

}

/*運行結(jié)果:

Before strrev(): string

After strrev(): gnirts

*/

函數(shù)名: strstr

功 能: 在串中查找指定字符串的第一次出現(xiàn)

用 法: char *strstr(char *str1, char *str2);

舉例:

[cpp] view plain copy

#include stdio.h

#include string.h

int main(void)

{

char *str1 = "Borland International", *str2 = "nation", *ptr;

ptr = strstr(str1, str2);

printf("The substring is: %s/n", ptr);

return 0;

}

函數(shù)名: strtod

功 能: 將字符串轉(zhuǎn)換為double型值

用 法: double strtod(char *str, char **endptr);

舉例:

[cpp] view plain copy

#include stdio.h

#include stdlib.h

int main(void)

{

char input[80], *endptr;

double value;

printf("Enter a floating point number:");

gets(input);

value = strtod(input, endptr);

printf("The string is %s the number is %lf/n", input, value);

return 0;

}

函數(shù)名: strtol

功 能: 將串轉(zhuǎn)換為長整數(shù)

用 法: long strtol(char *str, char **endptr, int base);

舉例:

[cpp] view plain copy

#include stdlib.h

#include stdio.h

int main(void)

{

char *string = "87654321", *endptr;

long lnumber;

/* strtol converts string to long integer */

lnumber = strtol(string, endptr, 10);

printf("string = %s long = %ld/n", string, lnumber);

return 0;

}

函數(shù)名: strupr

功 能: 將串中的小寫字母轉(zhuǎn)換為大寫字母

用 法: char *strupr(char *str);

舉例:

[cpp] view plain copy

#include stdio.h

#include string.h

int main(void)

{

char *string = "abcdefghijklmnopqrstuvwxyz", *ptr;

/* converts string to upper case characters */

ptr = strupr(string);

printf("%s/n", ptr);

return 0;

}

c語言 字符串替換函數(shù)

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

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

我們看看下面的舉例:

?php

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

?

得到的結(jié)果是:

I lOve yOu

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

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

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

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

?php

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

?

結(jié)果是:

I Love you

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

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

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

?php

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

?

結(jié)果是:

I lOvEs yOu

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

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

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

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

5.能用strtr函數(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

再次提醒那個Love 寫成love 是行不通的哦。

字符串取代。

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

返回值: 字符串

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

內(nèi)容說明

本函數(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)容的變量名)]

實例:

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

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

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


本文題目:c語言字符替換庫函數(shù) c語言字符替換程序
URL地址:http://weahome.cn/article/dogepje.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部