柚子快報激活碼778899分享:開發(fā)語言 C語言基礎(chǔ)——字符串
柚子快報激活碼778899分享:開發(fā)語言 C語言基礎(chǔ)——字符串
一.字符串儲存
字符串是由數(shù)字、字母、標(biāo)點(diǎn)符號組成的一串字符,在C語言中,字符串沒有專屬的數(shù)據(jù)類型,而是基于字符類型進(jìn)行表示的,他的存儲分為內(nèi)存存儲與數(shù)組存儲兩種形式。
1.內(nèi)存存儲
字符串在內(nèi)存中是連續(xù)存儲的,以字符\0結(jié)束,\0占用一個儲存空間,但\0不會被計(jì)入字符串的實(shí)際長度
由上圖可知,在C語言中,字符串的地址實(shí)際上是該字符串的首地址。所以可以直接將字符串賦給基類型為char的指針變量。
2.數(shù)組儲存
字符串可以用數(shù)組儲存,分兩種,第一種是使用單個字符依次為數(shù)組進(jìn)行賦值,之后再賦一個結(jié)束符(\0)一表示字符串結(jié)束
%s打印字符串
第二種相對簡單,就是直接使用字符串為數(shù)組賦值 因?yàn)樽址Y(jié)束有個占位符\0,所以字符串長度必須小于數(shù)組中元素個數(shù),否則會出現(xiàn)溢出錯誤
二.使用字符串
在C語言中,字符串常見使用包含指針操作字符換、輸入/輸出字符串、字符串?dāng)?shù)組等。
1.指針操作字符串
將字符串賦給指針變量,然后通過指針變量訪問內(nèi)存中的字符串。
2.輸入和輸出字符
C語言標(biāo)準(zhǔn)輸入庫stdio.h提供多種輸入和輸出相關(guān)的函數(shù)。其中,輸入/輸出字符串會用到4個系統(tǒng)函數(shù)。
a.輸入字符串
輸入字符串會用到函數(shù)scanf()與函數(shù)gets()。 (1)scanf()可以獲取用戶輸入的單個或多個字符串,并且可以將字符串賦給數(shù)組變量及指向數(shù)組變量的指針變量。
scanf_s("字符串占位符1 字符串占位符2 …… 字符串占位符n",數(shù)組變量名1,限制元素個數(shù),數(shù)組變量名2,限制元素個數(shù),……,數(shù)組變量名n,限制元素個數(shù))
其中,數(shù)組名可以替換為指向數(shù)組變量的指針變量名 (2)函數(shù)gets()可以讀取用戶輸入的單個字符串,并且可以將字符串賦給數(shù)組變量及指向數(shù)組變量的指針變量
gets(s);
其中s指代數(shù)組變量或指針變量名,基類型必須是char。 gets()函數(shù)以換行符結(jié)束,并且換行符會被丟棄,自動添加結(jié)束符’\0’
b.輸出字符串
輸出字符串要用到函數(shù)printf()和puts()。 (1)在函數(shù)printf()輸出字符串時,會用到占位符(%s)、存放字符串的數(shù)組和指向字符串的指針變量,與scanf()配合使用。 (2)puts()只能輸出一個字符串,不能輸出數(shù)值或進(jìn)行格式變換,并且在輸出字符串后會自動換行。與gets()配合使用
3.字符串?dāng)?shù)組
字符串?dāng)?shù)組是指對多個字符串以二維數(shù)組或指針數(shù)組的形式進(jìn)行管理/字符串?dāng)?shù)組的二維數(shù)組形式是指直接將字符串賦給二維數(shù)組。 二維數(shù)組常量表達(dá)式2要大于每個字符串的長度,因?yàn)橛袀€’\0’占位符
三.字符串系統(tǒng)函數(shù)
為了方便對字符串的管理和使用,C語言提供了多個系統(tǒng)函數(shù)來對字符串進(jìn)行操作。這些系統(tǒng)函數(shù)全部來源于頭文件string.h
1.復(fù)制字符串函數(shù)
復(fù)制字符串函數(shù) strcpy() 可以對一個字符串進(jìn)行復(fù)制,并返回復(fù)制的字符串。
strcpy(a,b);
將b復(fù)制到a。
2.字符串比較函數(shù)
字符串比較函數(shù)strcmp()可以對兩個字符串大大小進(jìn)行比較。
strcmp(str1,str2);
其中,str1指代第一個字符串;str2指代第二個字符串,如果相同返回0,如果str1大于str2,返回正值,否則返回負(fù)值。
str1和str2可以為數(shù)組變量名、指針變量名以及字符串3種形式。其中,數(shù)組變量與指針變量基類型必須是char。
3.連接字符串函數(shù)
連接字符串函數(shù)strcat()可以在一個字符串后添加另外一個字符串。
strcat(a,b);
連接字符串函數(shù)strcat()會將b指向的字符串連接到a指向的地址末尾處
此過程對b無影響。
4.字符串長度函數(shù)
字符串長度函數(shù)strlen()可以將一個字符串長度進(jìn)行返回。
strlen(a);
其中a可以指帶數(shù)組變量名,指針變量名及字符串。這里,數(shù)組變量與指針變量的基類型
必須為char。
5.字符串大/小寫轉(zhuǎn)換函數(shù)
a.字符串小寫轉(zhuǎn)換函數(shù)
字符串小寫轉(zhuǎn)換函數(shù)_strlwr()可以將字符串中的字符全部轉(zhuǎn)換為小寫。
_strlwr(s);
s指代一個字符串
b.字符串大寫轉(zhuǎn)換函數(shù)
字符串大寫轉(zhuǎn)換函數(shù)_strupr()可以將字符串中的字符全部轉(zhuǎn)換為大寫。
_strupr(s);
其中,s指代一個字符串。
柚子快報激活碼778899分享:開發(fā)語言 C語言基礎(chǔ)——字符串
參考閱讀
本文內(nèi)容根據(jù)網(wǎng)絡(luò)資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀點(diǎn)和立場。
轉(zhuǎn)載請注明,如有侵權(quán),聯(lián)系刪除。