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

C語言字符串函數(shù)入門

 更新時間:2022年01月03日 15:18:51   作者:build小春寶  
這篇文章主要為大家介紹了C語言字符串函數(shù),具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助

實現(xiàn)字符串庫函數(shù)功能

有些時候我們可能會被限制無法使用庫函數(shù),這個時候我們需要編寫自己的庫函數(shù)。但了解了字符串庫函數(shù)的功能之后,想要實現(xiàn)并不困難,今天我們用數(shù)組和循環(huán)來簡單實現(xiàn)幾個字符串庫函數(shù)的功能。

1.strlen函數(shù)

strlen函數(shù)使用來求字符串長度的,遇到\0就會停止,并返回字符串的長度,接下來根據(jù)這個特性來編寫一下我們自己的strlen

int my_strlen(char string[]) {
	int count= 0;
	while (string[count] != NULL) {        
		count++;
	}
	return count;
}//也可以將while的判斷條件改為string[count]

有些小伙伴應該知道遞歸的實現(xiàn),但是這里涉及了指針的內(nèi)容,我就不教大家實現(xiàn)了

2.strcmp函數(shù)

strcmp字符串比較函數(shù),對兩個字符串進行比較,相當返回0,前一個字符串大于后一個字符串會返回大于0的數(shù),小于則返回小于0的數(shù),至于具體返回多少,則需要看編譯器。

在實現(xiàn)strcmp功能之前,我們需要了解它的機制,strcmp是一個字符一個字符的比較ASCII值的

int  my_strcmp(char string1[], char string2[]) {
	int i = 0;
	   //當兩個字符串都沒有達到末端時,繼續(xù)比較
	while ((string1[i] == string2[i]) && string1[i] && string2[i])
		i++;
	return string1[i] - string2[i]; //當兩個字符串指向的字符不一樣或者到達終點時返回差值
}

一個簡單的while循環(huán)就能達到目的

3.strcpy函數(shù)

字符串拷貝函數(shù),將后一個字符串拷貝到前一個字符串中,我們需要保證目的地足夠大

void my_strcpy(char string1[50], char string2[]) {
	int i = 0;
	while (string1[i++] = string2[i++]);
}
//這里利用了賦值表達式的特性,直接進行賦值,當string[i]為\0時賦值完循環(huán)自動停止
//當然這個程序并不是完美的,根據(jù)strcpy的返回值我們還可以這樣修改
char* my_strcpy(char string1[50], char string2[]) {
		int i = 0;
		while (string1[i++] = string2[i++]);
		return string1;
}//返回目的地的起始地址

4.strcat函數(shù)

strcat字符串追加,在一個字符串之后追加一個新的字符串,如果以strcpy的角度理解就是以第一個字符串的\0位置為起始地址進行字符串拷貝,那么接下來就很簡單了

char* my_strcat(char string1[50], char string2[]) {
	int i = -1;
	while (string1[++i]);//循環(huán)停止時i指向\0
	int j = 0;
	while (string1[i++] = string2[j++]); //與strcpy同理
	return string1;
}

5.strupr函數(shù)

strupr字符串大寫函數(shù),將所有字符串中的小寫字母都變成大寫,我們只需要根據(jù)ASCII值就可以簡單實現(xiàn)

char*my_strupr(char string[]) {
	int i = 0;
	while (string[i]) {       //當string[i]指向\0時循環(huán)停止
		if (string[i] >= 'a' && string[i] <= 'z')
		string[i] -= 32;
		i++;
	}
	return string;
}

6.strlwr函數(shù)

和strupr對應,這是字符串小寫函數(shù),把大寫轉(zhuǎn)成小寫,只需要對上面的代碼簡單一改就可以

char*my_strlwr(char string[]) {
	int i = 0;
	while (string[i]) {       //當string[i]指向\0時循環(huán)停止
		if (string[i] >= 'A' && string[i] <= 'Z')
		string[i] += 32;
		i++;
	}
	return string;
}

總結

本篇文章就到這里了,希望能夠給你帶來幫助,也希望您能夠多多關注腳本之家的更多內(nèi)容!

相關文章

  • C++中set/multiset容器詳解(附測試用例與結果圖)

    C++中set/multiset容器詳解(附測試用例與結果圖)

    set/multiset屬于關聯(lián)式容器,底層結構是用二叉樹實現(xiàn),下面這篇文章主要給大家介紹了關于C++中set/multiset容器的相關資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2023-02-02
  • VC定時器的用法實例詳解

    VC定時器的用法實例詳解

    這篇文章主要介紹了VC定時器的用法,以實例形式詳細講述了VC定時器的原理與具體用法,非常具有實用價值,需要的朋友可以參考下
    2014-10-10
  • C/C++讀寫注冊表中二進制數(shù)據(jù)(代碼示例)

    C/C++讀寫注冊表中二進制數(shù)據(jù)(代碼示例)

    這篇文章主要介紹了使用Windows API 函數(shù)中的RegOpenKeyEx()函數(shù)和RegSetValueEx()函數(shù)來實現(xiàn)對注冊表某項寫入二進制鍵值,需要的朋友可以參考下
    2020-02-02
  • C++11中的原子量和內(nèi)存序詳解

    C++11中的原子量和內(nèi)存序詳解

    這篇文章主要給大家介紹了關于C++11中原子量和內(nèi)存序的相關資料,文中通過示例代碼介紹地方非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2018-06-06
  • C++ explicit關鍵字講解

    C++ explicit關鍵字講解

    這篇文章主要介紹了C++ explicit關鍵字講解,++提供了explicit關鍵字,相對于implicit而言,他默認關閉了隱式類型轉(zhuǎn)換方法。至于兩者有什么區(qū)別,看下面文章內(nèi)容的介紹吧
    2021-12-12
  • C語言實現(xiàn)桶排序的方法示例

    C語言實現(xiàn)桶排序的方法示例

    這篇文章主要介紹了C語言實現(xiàn)桶排序的方法,簡單描述了桶排序的概念、原理并結合實例形式分析了C語言實現(xiàn)桶排序算法的具體操作技巧,需要的朋友可以參考下
    2018-01-01
  • C++11中R字符串的作用小結

    C++11中R字符串的作用小結

    這篇文章主要介紹了C++11中R字符串的作用小結,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友參考下吧
    2024-07-07
  • C++實現(xiàn)圖書館案例

    C++實現(xiàn)圖書館案例

    這篇文章主要為大家詳細介紹了C++實現(xiàn)圖書館案例,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-06-06
  • GCC 編譯使用動態(tài)鏈接庫和靜態(tài)鏈接庫的方法

    GCC 編譯使用動態(tài)鏈接庫和靜態(tài)鏈接庫的方法

    根據(jù)鏈接時期的不同,庫又有靜態(tài)庫和動態(tài)庫之分,有別于靜態(tài)庫,動態(tài)庫的鏈接是在程序執(zhí)行的時候被鏈接的
    2013-03-03
  • C語言詳解strcmp函數(shù)的分析及實現(xiàn)

    C語言詳解strcmp函數(shù)的分析及實現(xiàn)

    strcmp函數(shù)語法為“int strcmp(char *str1,char *str2)”,其作用是比較字符串str1和str2是否相同,如果相同則返回0,如果不同,前者大于后者則返回1,否則返回-1
    2022-05-05

最新評論

新津县| 绥宁县| 嘉峪关市| 吴桥县| 永济市| 乌鲁木齐县| 沧州市| 肥东县| 深水埗区| 涞水县| 呼玛县| 应城市| 根河市| 绍兴市| 大方县| 正定县| 瑞昌市| 岑溪市| 香港 | 开封县| 武胜县| 冕宁县| 阜南县| 陈巴尔虎旗| 太湖县| 白河县| 克什克腾旗| 屯门区| 越西县| 葵青区| 黔西县| 宁城县| 太和县| 邛崃市| 休宁县| 旬阳县| 神木县| 长葛市| 萝北县| 滦平县| 罗山县|