天天看點

文章标題C語言複習(二)——數組與字元串

C語言複習(二)——數組與字元串

一、數組

1.概念:

數組是在程式設計中,為了處理友善, 把具有相同類型的若幹元素按無序的形式組織起來的一種形式。

2.舉例

int a[10];          //說明整型數組a,有10個元素。
float b[10],c[20];  // 說明實型數組b,有10個元素,實型數組c,有20個元素。
char ch[20];        //說明字元數組ch,有20個元素。
           

3.特點

  1. 數組是相同資料類型的元素的集合
  2. 數組中的各元素的存儲是有先後順序的,它們在記憶體中按照這個先後順序連續存放在一起
  3. 數組元素用整個數組的名字和它自己在數組中的順序位置來表示。例如,a[0]表示名字為a的數組中的第一個元素,a[1]代表數組a的第二個元素,以此類推。

4.初始化和指派

int a[] = {,,,,,,,,,};  //此為數組的初始化,a[0]=1,a[1]=2以此類推
int b[] = {,};                  //也可以隻給前幾個元素指派,後面的預設為0
int c[];                          //聲明十個元素的整型數組
c[] = {,,,,,,,,,};      //這樣指派是錯誤的
c[] = ;                           //指派應該一個元素一個元素的指派
           

注意:聲明和定義數組時[]裡的數字表示這個數組的元素個數,定義過後的數組的[]裡的數字表示下标,是以像c[10]={1,2,3,4,5,6,7,8,9,0}這樣的指派方法是錯誤的,就沒有c[10]這個元素

5.指針和數組的關系

int *p;     //p指向的是一個位址
int a[];  //a為這個數組首元素的位址
p = a;      //是以這樣是允許的,把p指向數組a的首位址
           

是以p=a[0],(p+1)=a[1],*(p+2)=a[2],以此類推

6.二維數組

一維數組:一維數組是最簡單的數組,其邏輯結構是線性表。要使用一維數組,需經過定義、初始化和應用等過程。

二維數組:前面的舉例都是以為數組,都是隻有一個下标,二維數組有兩個下标,第一個下标表示第幾行,第二個下标表示第幾列,如a[2][2]。雖然二維數組在定義上是二維的,但存儲卻是在連續的位址上的,是特殊的一維數組。

初始化:如int a[3][3]={{1,2,3},{4,5,6},{7,8,9}},{1,2,3}表示第一行,以此類推。

指派:如a[1][2]=3表示第二行第三列的元素指派為3。

和指針的關系:如int a[3][3],a[0]表示第一行的首元素的位址,a[1]表示第二行首元素的位址以此類推

二、字元串

1.概念:字元串是由數字、字母、下劃線組成的一串字元。

2.舉例

char c[] = "abcde";
char *p = "abcde";
char *q;
p = a;
           

字元串的定義有兩種方法,一種就是有數組存放字元串,一種就是用指針存放

3.字元串操作

  1. 字元串操作

    strcpy(p, p1) 複制字元串

    strncpy(p, p1, n) 複制指定長度字元串

    strcat(p, p1) 附加字元串

    strncat(p, p1, n) 附加指定長度字元串

    strlen(p) 取字元串長度

    strcmp(p, p1) 比較字元串

    strcasecmp忽略大小寫比較字元串

    strncmp(p, p1, n) 比較指定長度字元串

    strchr(p, c) 在字元串中查找指定字元

    strrchr(p, c) 在字元串中反向查找

    strstr(p, p1) 查找字元串

    strpbrk(p, p1) 以目标字元串的所有字元作為集合,在目前字元串查找該集合的任一進制素

    strspn(p, p1) 以目标字元串的所有字元作為集合,在目前字元串查找不屬于該集合的任一進制素的偏移

    strcspn(p, p1) 以目标字元串的所有字元作為集合,在目前字元串查找屬于該集合的任一進制素的偏移

    具有指定長度的字元串處理函數在已處理的字元串之後填補零結尾符

  2. 字元串到數值類型的轉換

    strtod(p, ppend) 從字元串 p 中轉換 double 類型數值,并将後續的字元串指針存儲到 ppend 指向的 char* 類型存儲。

    strtol(p, ppend, base) 從字元串 p 中轉換 long 類型整型數值,base 顯式設定轉換的整型進制,設定為 0 以根據特定格式判斷所用進制,0x, 0X 字首以解釋為十六進制格式整型,0 字首以解釋為八進制格式整型

    atoi(p) 字元串轉換到 int 整型

    atof(p) 字元串轉換到 double 符點數

    atol(p) 字元串轉換到 long 整型

  3. 字元檢查

    isalpha() 檢查是否為字母字元

    isupper() 檢查是否為大寫字母字元

    islower() 檢查是否為小寫字母字元

    isdigit() 檢查是否為數字

    isxdigit() 檢查是否為十六進制數字表示的有效字元

    isspace() 檢查是否為空格類型字元

    iscntrl() 檢查是否為控制字元

    ispunct() 檢查是否為标點符号

    isalnum() 檢查是否為字母和數字

    isprint() 檢查是否是可列印字元

    isgraph() 檢查是否是圖形字元,等效于 isalnum() | ispunct()

繼續閱讀