亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

C語言字符操作函數(shù)和字符串操作函數(shù)

0x584a / 1830人閱讀

摘要:作用字符串拷貝原型使用格式字符數(shù)組名,字符數(shù)組名使用該函數(shù)有兩個(gè)參數(shù),右邊拷貝到左邊返回值為字符串的首地址字符串拷貝到字符串輸出結(jié)果注意此函數(shù)是用來判斷是否結(jié)束的,所以只能拷貝帶有的字符串。

目錄

1.strlen??

2.strcpy??

3.strcat

4.strcmp

后面是長度受限的字符串操作函數(shù)

5.strncpy

6.strncat

?7.strncmp

8.strstr

9.strtok

???


1.strlen??

?

作用:計(jì)算字符串長度

原型:

size_t strlen ( const char * str );

使用格式:

? ? ? ? ? ? ? ? ?strlen(字符數(shù)組名)?

使用:傳入一個(gè)字符串或字符串首元素地址,返回/0前字符個(gè)數(shù)。

strlen("abc");//或char aa[5]="abc"strlen(aa);

輸出結(jié)果:

注意:只能計(jì)算帶有“/0”的字符串,

? ? ? ? ? ?由于返回值類型為“size_t”類型,

? ? ? ? ? ?所以 例如:

if(strlen("abc")-strlen("abcdefg")>0)

? ? ? ? ? ?時(shí)會(huì)出現(xiàn)問題,

? ? ? ? ? ?“size_t”是由“unsigend int”重命名得來。

2.strcpy??

作用:字符串拷貝

原型:

char*strcpy(char* destination,const char* source);

使用格式: strcpy(字符數(shù)組名1,字符數(shù)組名2)

使用:該函數(shù)有兩個(gè)參數(shù),右邊拷貝到左邊————返回值為字符串1的首地址

int main(){	char a[] = { "##############" };	char b[] = { "abc" };	puts(a);	strcpy(a, b);//b字符串拷貝到a字符串	puts(a);}

輸出結(jié)果:

注意:

1.此函數(shù)是用/0來判斷是否結(jié)束的,所以只能拷貝帶有/0的字符串。

int main(){	char a[] = { "##############" };	char b[] = { "a","b","c"};//這種是不帶/0的寫法,編譯器雖然不會(huì)報(bào)錯(cuò)但是也不會(huì)出結(jié)果的	puts(a);	strcpy(a, b);//b字符串拷貝到a字符串	puts(a);}

2.左邊的字符串要大于右面的字符串,也就是上面a字符串要大于b字符串。

3.左邊的字符串一定是可以修改的,也就是上面a字符串是可修改的。

3.strcat

作用:追加字符串。

原型:

char*strcat(char*strDestination,const char*strSource)

使用格式: strcat(字符數(shù)組名1,字符數(shù)組名2)

使用:該函數(shù)有兩個(gè)參數(shù),?右邊的字符串追加到左邊————返回值是“字符串1”的首地址

#include #include int main(){	char aa[10] = { "abc" };	strcat(aa, "def");	puts(aa);//最后輸出abcdef}

注意:被追加的字符串(左邊的第一個(gè)參數(shù))一定要預(yù)留空間,預(yù)留的空間要大于追加后的字符? ? ? ? ? ? ? ?串。

? ? ? ? ? ?此函數(shù)的兩個(gè)參數(shù)都要有"/0",沒有"/0"是會(huì)報(bào)錯(cuò)的。

4.strcmp

作用:比較字符串,比較的是內(nèi)容,不是長度。

原型:

int strcmp(const char *string1,const char *string2)

使用方式:strcmp(字符數(shù)組名1,字符數(shù)組名2)

使用:?

? ? ? ? ? ?簡單說就是傳入兩個(gè)字符串的地址,

? ? ? ? ? ?兩個(gè)字符串完全相等返回0,

? ? ? ? ?? 不相等返回>0的數(shù)或<0的數(shù)

? ? ? ? ? ?<0的情況:

? ? ? ? ? ? >0的情況?:

?注意:此函數(shù)返回的值與字符串的大小,所占內(nèi)存無關(guān),只與第一對不同的字符串和字符串是否? ? ? ? ? ? ? ? 相等有關(guān)。

? ? ? ? ? ? 只能用來比較帶有/0 的字符串。

后面是長度受限的字符串操作函數(shù)

5.strncpy

作用:拷貝固定長度的字符串

原型:

char *strncpy( char *strDest, const char *strSource, size_t count );

使用方式:strncpy(字符數(shù)組名1,字符數(shù)組名2,無符號(hào)整形)?

使用:此函數(shù)有三個(gè)參數(shù),

? ? ? ? ? ?意思是,把strSurce中的count個(gè)字符拷貝到strDest?

下面是參數(shù)對應(yīng)的位置

#include #includeint main(){	char a[] = "abcdefg";	char b[] = "#######";	strncpy(a, b, 3);//表示,把b中的3個(gè)字符串拷貝到a中	puts(a);}

? 注意:第三個(gè)參數(shù)最好不要大于第二個(gè)字符串的元素個(gè)數(shù),如果大于,會(huì)補(bǔ)‘/0’。

? ? ? ? ? ? ?該函數(shù)會(huì)返回第一個(gè)參數(shù)的地址。

6.strncat

作用:追加固定長度的字符串

原型:

char *strncat( char *strDest, const char *strSource, size_t count );

使用方式:strncat(字符數(shù)組名1,字符數(shù)組名2,無符號(hào)整形)

使用:

? ? ? ? 下面我就用紅字代替對應(yīng)的參數(shù)。

?把? “b字符串”? 中的前? “參數(shù)3”? 個(gè)字符串追加到? “a字符串”? 后。

例:

#include #includeint main(){	char aa[10] = "abc";	char bb[10] = "######";	strncat(aa, bb, 3);//把bb中的前三個(gè)字符追加到aa后	puts(aa);}

?最后輸出“abc###”。

注意:該函數(shù)追加后會(huì)自動(dòng)補(bǔ)"/0",所以要保證

? ? ? ? ? ?{“a字符串”?空間大于? “a字符串”? ?加? ?“追加字符個(gè)數(shù)”+1}

? ? ? ? ? ?后面這個(gè)1是"/0"的空間

? ? ? ? ? 如果? “參數(shù)3”? ?>? ?“b字符串”? 只會(huì)追加? ?“b字符串”? ?加一個(gè)? “/0”

?7.strncmp

作用:比較指定字符個(gè)數(shù)的字符串

原型:

int strncmp( const char *string1, const char *string2, size_t count );

使用方式:strncmp(字符數(shù)組名1,字符數(shù)組名2,無符號(hào)整形)?

使用:

? ? ? ? ? ?下面用紅字代替對應(yīng)參數(shù)。

?

?把? “參數(shù)2”? 中的前 “參數(shù)3”? 個(gè)字符與? “參數(shù)1”? 中的前“參數(shù)3”個(gè)字符比較

比較方式與strcmp是一樣的只是加了個(gè)長度的限制。

8.strstr

作用:查找字符串

原型:

char *strstr( const char *string, const char *strCharSet );

?使用方式:

? ? ? ? ? ? ? ? ? ?strstr(字符數(shù)組名1,字符數(shù)組名2)

使用:

?在? “字符串1”? 中找? “字符串2”? 在? “字符串1”? 中第一次出現(xiàn)的位置

并返回第一次出現(xiàn)位置的首地址,如果找不到返回空指針。

找到:

#include#include int main(){	char aa[] = "aa bb cc bb";	char bb[] = "bb";	char* c = strstr(aa, bb);//在aa中找bb在aa中第一次出現(xiàn)的位置	if (c == NULL)	{		printf("找不到/n");//找不到會(huì)返回空指針	}	else	{		printf("找到了/n");		puts(c);//找到返回bb在aa中第一次出現(xiàn)位置的地址	}}

找不到:

#include#include int main(){	char aa[] = "aa bb cc bb";	char bb[] = "ee";	char* c = strstr(aa, bb);//在aa中找bb在aa中第一次出現(xiàn)的位置	if (c == NULL)	{		printf("找不到/n");//找不到會(huì)返回空指針	}	else	{		printf("找到了/n");		puts(c);//找到返回bb在aa中第一次出現(xiàn)位置的地址	}}

9.strtok

作用:切割字符串

原型:

char *strtok( char *strToken, const char *strDelimit );

使用方式:

? ? ? ? ? ? ? ? ? ?strtok(字符數(shù)組名1,字符數(shù)組名2)

使用:

“參數(shù)1”? ?處 傳 被分割的字符串?

“參數(shù)2”? ?處 傳 分割符(其實(shí)就是字符)

分割方式:

在 "參數(shù)1"? 中首次遇到? ?"參數(shù)2"? 中的元素時(shí)

把? “參數(shù)1” 中該元素替換為‘/0’

#include#includeint main(){	char a[] = "abc.def";	char b[] = ".";	puts(strtok(a, b));//把字符串a(chǎn)中的“.”替換成"/0"并返回a字符串中a元素的地址	}

分割成多段?需要多次調(diào)用

每次調(diào)用后會(huì)保存此次更改"/0"后一個(gè)元素的地址

下一次調(diào)用時(shí)? ?“參數(shù)1”? ?需要傳空指針(NULL)才能繼續(xù)切割

#include#includeint main(){	char a[] = "aaa.bbb.ccc";//被分割的字符串	char b[] = ".";//分割符	printf("%s/n", strtok(a, b));//返回a字符串中第一個(gè)a的地址	printf("%s/n", strtok(NULL, b));//此時(shí)該函式已經(jīng)保存了上一次調(diào)用a字符串中第一個(gè)b的地址	                                //并把bbb后的“.”改為“/0”	printf("%s/n", strtok(NULL, b));//此時(shí)并沒有找到b字符串中元素直接返回此次調(diào)用起始地址	printf("%s/n", strtok(NULL, b));//這時(shí)字符串中已經(jīng)不存在更多標(biāo)記返回空指針(NULL)}

返回值是此函數(shù)此次切割字符串的首地址

注意:此函數(shù)會(huì)改變原字符串所以一般用拷貝后的臨時(shí)數(shù)據(jù)。

嗯,這次這strtok寫的可能有些問題,然后還請大佬們指正

以上就是本次的分享,歡迎大家評論,指出錯(cuò)誤或更好的方法。

???

? ? ?? ??

??

?

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://www.ezyhdfw.cn/yun/122425.html

相關(guān)文章

  • 【零基礎(chǔ)趣學(xué)C語言】- 史上最全C語言函數(shù)詳解(萬字圖文+代碼演示+圖解)

    摘要:語言在設(shè)計(jì)中考慮了函數(shù)的高效性和易用性兩個(gè)原則。在語言中,最常見的當(dāng)屬函數(shù)了。以上就是一個(gè)函數(shù),它被稱為語言的入口函數(shù),或者主函數(shù)。例如和都是函數(shù)名。形式參數(shù)當(dāng)函數(shù)調(diào)用完成之后就自動(dòng)銷毀了。 ...

    468122151 評論0 收藏0
  • 【簡單地過一遍C語言基礎(chǔ)部分】所有知識(shí)點(diǎn),點(diǎn)到為止?。▋H一萬多字)

    摘要:局部變量的作用域是變量所在的局部范圍。生命周期變量的生命周期變量的創(chuàng)建和銷毀之間的時(shí)間段局部變量的生命周期進(jìn)入作用域生命周期開始,出作用域生命周期結(jié)束。 前言: 就在前幾天,C語言入門到進(jìn)階部分的專欄——《維生素C語言》終于完成了。全文共計(jì)十八個(gè)章節(jié)并附帶三張筆試練習(xí)篇,美中不足的是,第...

    chaos_G 評論0 收藏0
  • Win知識(shí) - 程序是怎樣跑起來的(合集)

    摘要:系統(tǒng)調(diào)用和高級(jí)編程語言的移植性操作系統(tǒng)的硬件控制功能,通常是通過一些小的函數(shù)集合體的形式來提供的。這是因?yàn)橛布目刂剖怯扇珯?quán)負(fù)責(zé)的。語言提供的函數(shù),是用來在命令提示符中顯示字符串的函數(shù)。 系統(tǒng)調(diào)用和高級(jí)編程語言的移植性 操作系統(tǒng)的硬件控制功能,通常是通過一些小的函數(shù)集合體的形式來提供的。這些...

    joywek 評論0 收藏0
  • ??學(xué)懂C語言文件操作讀這篇就夠了(萬字總結(jié),附習(xí)題)??

    目錄 ??? 一,寫在前面 二,為什么使用文件 1,原因 2,數(shù)據(jù)流 3,緩沖區(qū)(Buffer) 4,C語言中帶緩沖區(qū)的文件處理 5,文件類型 6,文件存取方式 三,什么是文件 1,程序文件 ?2,數(shù)據(jù)文件 3,文件名 四,文件的打開和關(guān)閉? 1,文件指針 ?2,文件的打開和關(guān)閉 五,文件的順序讀寫 1,功能 2,代碼實(shí)現(xiàn) 六,文件的隨機(jī)讀寫 1,fseek 2,ftell 3,rewind 七,...

    Genng 評論0 收藏0

發(fā)表評論

0條評論

最新活動(dòng)
閱讀需要支付1元查看
<