最近中文字幕高清中文字幕无,亚洲欧美高清一区二区三区,一本色道无码道dvd在线观看 ,一个人看的www免费高清中文字幕

全部開(kāi)發(fā)者教程

C 語(yǔ)言入門(mén)教程

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

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

C 語(yǔ)言中的字符串雖然不是一種獨(dú)立的數(shù)據(jù)類(lèi)型,但是這并不影響其重要地位,所以在 C 語(yǔ)言中會(huì)有一些專(zhuān)門(mén)針對(duì)字符串的函數(shù)。

1. 字符串函數(shù)

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

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

序號(hào) 函數(shù) 功能
1 strlen(str1) 獲取 str1 字符串的長(zhǎng)度
2 strcpy(str1,str2) 將 str2 中的內(nèi)容復(fù)制到 str1 中
3 strcat(str1,str2) 將 str2 連接到 str1 的后面
4 strcmp(str1,str2) 比較兩個(gè)字符串,如果兩個(gè)字符串一致則返回 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ì)的字符串的大小是包含空格和符號(hào)的。但是不包含字符數(shù)組中的最后一個(gè)表示字符串結(jié)束的 \0 字符。

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

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

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

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

3. 小結(jié)

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