一.字符串(單個字符)的定義
1.單個字符的定義
char i = ‘x’ (單個字符的定義)
字符串創建后為常量無法修改
2.一維字符串數組的定義
char i []=”xxxx”;(此方式定義的一維字符串數組必須立刻賦值) char i [4];(此方式相當於在存儲器里面建立一個可以存儲3個字符的數組空間) char i [4]=”xxxx”; char i [4]={‘x’’x’’x’’x’};
其中定義的數組的元素數要比實際賦值的數量多一,用於存放\0位置
字符數組只有在定義時才能將整個字符串一次性地賦值給它,一旦定義完了,就只能一個字符一個字符地賦值了。
3.二維字符串數組的定義
char i[][80] = { "xxxxxxx", "xxxxxxx", };
第一個方括號代表數組的行數,第二個方括號代表數組的列數,同時定義字符的個數(要比實際應用多一,用於存放\0位置)。
二.字符串(單個字符)和一維字符數組輸入
1.scanf函數
給字符串(單個字符)賦值
scanf(“%2s”, &x);(其中x為定義的char類型變量的名字)
給字符數組賦值
scanf(“%2s”, x);(其中x為定義的字符數組名字)
三. 字符串(單個字符)和一維字符數組的輸出
1.單個字符的輸出
printf (“%c”, x);對單個字符進行輸出
X為char類型變量的名字
2.字符數組的輸出
printf(“%s”, x);對字符串進行輸出
X為字符數組名
四.字符串的處理
1.string.h頭文件的使用
定義方法:#include <string.h>
常用的幾個函數及功能:
strchr() 查找字符
stremp() 比較字符串
strstr() 在字符串中查找字符串 ,使用方法:strstr("被查找字符串", "需要查找的字符串");
strcpy() 復制字符串
strlen() 返回字符串的長度
strcat() 連接字符串
strdup() 復制字符串到堆上
strcmp() 用於比較兩個字符串並根據比較結果返回整數。基本形式為strcmp(str1,str2),若str1=str2,則返回零;若str1<str2,則返回負數;若str1>str2,則返回正數
atoi 函數(在<stdlib.h>庫文件中),
五.字符數組與指針之間一些注意事項
1.指針退化問題
char s[] ="xxxx"; char * t = s;
字符數組變量賦值給指針時,指針變量只會包含數組的地址信息,而丟失了數組的長度信息,這個信息的丟失稱為指針退化。
六.為什么字符串可以賦值給字符指針變量
char * a = "xxxx"
雙引號做了3件事:
1.申請了空間(在常量區),存放了字符串
2. 在字符串尾加上了'/0'
3.返回地址