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