第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

全部開發(fā)者教程

C 語言入門教程

C 語言基礎(chǔ)教程
01 C 語言簡介 02 C 語言的程序結(jié)構(gòu) 03 C 語言的編譯 04 C 語言的標(biāo)準(zhǔn) 05 C 語言中的注釋 06 C 語言中的變量 07 C 語言中的變量類型 08 C 語言的常量 09 C 語言的輸入與輸出 10 C 語言中的 printf() 格式輸出 11 C 語言中的類型轉(zhuǎn)換 12 C 語言中的運(yùn)算符 13 C 語言中的算數(shù)運(yùn)算符 14 C 語言中的位運(yùn)算符 15 C 語言中的邏輯運(yùn)算符 16 C 語言中的三目運(yùn)算符 17 C 語言中的分支結(jié)構(gòu) 18 C 語言中的多重分支 19 C 語言中的分支嵌套結(jié)構(gòu) 20 C 語言中的循環(huán)結(jié)構(gòu) 21 C 語言中的 while 循環(huán) 22 C 語言中的 do-While 循環(huán) 23 C 語言中的 for 循環(huán) 24 C 語言中的多重循環(huán)嵌套 25 循環(huán)實(shí)戰(zhàn),打印九九乘法表 26 C 語言中的break和continue 27 C 語言中的 if 語句 28 C 語言中的 switch/case 語句 29 C 語言中的函數(shù) 30 C 語言函數(shù)的定義和聲明 31 C 語言中函數(shù)的參數(shù)傳入類型 32 C 語言中的 main() 函數(shù)參數(shù) 33 make 工具 makefile 34 C 語言中的數(shù)組 35 C 語言中的多維數(shù)組 36 數(shù)組的練習(xí) 37 C 語言中的字符串 38 C 語言中的字符串函數(shù) 39 C 語言字符串練習(xí) 40 C 語言中的指針 41 C 語言中的 struct 42 C 語言中的 union 43 C 語言中的 maclloc free() 44 C 語言中的 enum 45 整體練習(xí)-學(xué)生管理系統(tǒng)
首頁 慕課教程 C 語言入門教程 C 語言入門教程 38 C 語言中的字符串函數(shù)

C 語言中的字符串函數(shù)

C 語言中的字符串雖然不是一種獨(dú)立的數(shù)據(jù)類型,但是這并不影響其重要地位,所以在 C 語言中會有一些專門針對字符串的函數(shù)。

1. 字符串函數(shù)

字符串函數(shù)是專門用來進(jìn)行字符串操作的。C 語言提供了一個標(biāo)準(zhǔn)的函數(shù)庫 string.h 。在這個函數(shù)庫中大致存在了 22 個字符串的函數(shù)。我們這里所介紹的字符串函數(shù)是來自于這個標(biāo)準(zhǔn)函數(shù)庫中比較常用的的一部分函數(shù)。除了這個函數(shù)庫,還會有第三方的函數(shù)庫提供的字符串的一些函數(shù)。這些不在本教程的討論范圍內(nèi)。

常用的字符串函數(shù)包含一下幾個:

序號 函數(shù) 功能
1 strlen(str1) 獲取 str1 字符串的長度
2 strcpy(str1,str2) 將 str2 中的內(nèi)容復(fù)制到 str1 中
3 strcat(str1,str2) 將 str2 連接到 str1 的后面
4 strcmp(str1,str2) 比較兩個字符串,如果兩個字符串一致則返回 0;如果 str1 大于 str2 則返回正數(shù);如果 str1 小于 str2 則返回負(fù)數(shù)
5 strchr(str1,shar1) 在 str1 中查找字符 char1 第一次出現(xiàn)的位置,返回該位置的指針
|6|strstr(str1.str2)|在 str1 中查找字符串 str2 第一次出現(xiàn)的位置,返回該位置的指針

2. 示例程序

#include <stdio.h>
#include <string.h>

int main()
{
    char a[100] = "Welcome to our wiki!";
    char b[] = "It is a interest place.";
    char c[20] = "";

    printf("string length = %lu\n", strlen(a));

    printf("Compare a to a : %d\n", strcmp(a, a));
    printf("Compare a to b : %d\n", strcmp(a, b));
    printf("Compare b to a : %d\n", strcmp(b, a));

    printf("Before copy : %s\n", c);
    strcpy(c, a);
    printf("After copy : %s\n", c);

    char *pchar;

    pchar = strchr(a, 'o');
    printf("Character : %s\n", pchar);

    pchar = strstr(a, "our");
    printf("String : %s\n", pchar);

    strcat(a, b);
    printf("After concatenate strings : %s\n", a);

    return 0;
}

運(yùn)行結(jié)果:

string length = 20
Compare a to a : 0
Compare a to b : 14
Compare b to a : -14
Before copy :
After copy : Welcome to our wiki!
Character : ome to our wiki!
String : our wiki!
After concatenate strings : Welcome to our wiki!It is a interest place.

在示例程序中,我們展示了常用的字符串函數(shù)的使用。在獲取字符串大小的函數(shù)中,我們統(tǒng)計(jì)的字符串的大小是包含空格和符號的。但是不包含字符數(shù)組中的最后一個表示字符串結(jié)束的 \0 字符。

比較字符串的大小其實(shí)是比較其里面字符編碼的數(shù)值大小求差值,所以兩個相同的字符差值是 0 ,如果前面的字符編碼值小于后面的,那么就會出現(xiàn)負(fù)值,反之就是一個正值。。但是具體的比較方式留在這里大家通過嘗試不同的值猜測一下。

拷貝字符串,就是將一個真的復(fù)制生成一個副本。而不是如同我們之前提及的使用數(shù)組給函數(shù)傳遞參數(shù)的時候一樣,只是傳遞的函數(shù)本體,而不是副本。因此你在復(fù)制字符串完成后,即使修改了原有字符串,也不會影響到新生成的字符串。

字符的查找與字符串的查找基本是類似的,通過示例可以看出,我們通過字符查找 o 那么會返回第一個出現(xiàn) o 的位置的指針,而通過字符串查找,只有完全匹配字符的情況下才返回指針,所以會跳過字符查找出現(xiàn)的位置,繼續(xù)查找,直到找到 our 這個字符串。

拼接字符串就是將兩個字符串拼接,這里同樣需要注意。前面是數(shù)組大小要足夠大,可以容納被拼接的字符串,否則會出現(xiàn)問題。

3. 小結(jié)

字符串的應(yīng)用非常廣泛,所以在 C 語言的標(biāo)準(zhǔn)函數(shù)庫中,提供了相關(guān)的支持。這里我們只是介紹了標(biāo)準(zhǔn)函數(shù)庫中的大約四分之一的常用函數(shù)的使用。這些函數(shù)的使用中,請大家記住字符串是由字符數(shù)組組成這一特性,在拼接,復(fù)制等等操作的時候,確認(rèn)目標(biāo)數(shù)組的大小是不是可以足夠的位置裝載相關(guān)的元素。