字符串的概念
·字符串是有序字符的集合
.字符串是程序中基本元素之一
.C語言中沒有字符串的概念
-C語言中經過特殊的字符數組模擬字符串
-C語言中的字符串是以'0'結尾的字符數組
在C語言中,雙引號引用的單個或多個字符是一種特殊的字面量
-存儲於程序的全局只讀存儲區
-本質爲字符數組,編譯器自動在結尾加上‘0’字符
`char ca[] = {'H','e','l','l','o'}; //字符
char sa[] = {'W','o','r','l','d','0'};//字符串
char ss[] = "Hello world"; // 字符串
char* str = "Hello world"; //
%s是輸出字符串
例子30-1:
`#include "stdio.h"
int main()
{數組
char ca[] = {'H','e','l','l','o'}; //字符 char sa[] = {'W','o','r','l','d','\0'};//字符串 char ss[] = "Hello world"; // 字符串 char* str = "Hello world"; // printf("%s\n",ca); printf("%s\n",sa); printf("%s\n",ss); printf("%s\n",str); return 0;
}`
輸出結果:
Hello燙燙燙?孝//亂碼
World
Hello world
Hello world
解析:第一個輸出錯誤結果是由於%s輸出字符串,可是數組ca定義的是字符
-字符串字面量的本質是一個數組
-字符串字面量能夠看做常量指針
-字符串字面量中的字符不可改變
-字符串字面量至少包含一個字符函數
%c是單個字符輸出
例子30-2:指針
#include "stdio.h" int main() { char b = "abc"[0]; char c = *("123" + 1); char t = *""; printf("%c\n",b); printf("%c\n",c); printf("%d\n",t); printf("%s\n","Hello"); printf("%p\n","world"); }
輸出結果:
a
2
0
Hello
00907020
分析:「abc"是一個沒有名字的字符串數組,"abc"[0];爲第零個元素爲a
字符串的長度
·字符串的長度就是字符串所包含字符的個數
·字符串長度指的是第一個'0'字符前出現的字符個數
·經過'0'結束符來肯定字符串的長度
·函數strlen用於返回字符串的長度
小結:C語言中經過字符數組模擬字符串
·C語言中字符串使用'0'做爲結束符
·字符串字面量的本質爲字符數組
·字符串相關函數都依賴於結束符「0」code
`字符串