中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

C語言字符串數組的用法

發布時間:2021-08-14 19:55:05 來源:億速云 閱讀:179 作者:chen 欄目:開發技術

這篇文章主要講解了“C語言字符串數組的用法”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“C語言字符串數組的用法”吧!

C語言字符串數組

字符串是連續的字符序列,最后以空字符'\0'作為終止符。一個字符串的長度指所有字符的數量,但不包括終止符。在 C 語言中,沒有字符串類型,自然也就沒有運算符以字符串為操作數。

字符串被存儲在元素類型為 char 或寬字符類型數組中(寬字符類型指 wchar_t、char16_t 或 char32_t)。寬字符組成的字符串也稱為寬字符串(wide string)。

C 標準庫提供了大量的函數,它們可以對字符串進行基本操作,例如字符串的比較、復制和連接等。在這些傳統的字符串函數以外,C11 新增了這些函數的“安全”版本,它們能確保字符串操作不會超出數組的邊界。

可以使用字符串字面量來初始化任何字符類型數組。例如,下面兩個數組的定義是等價的:

char str1[30] = "Let's go";             // 字符串長度:8;數組長度:30
char str1[30] = { 'L', 'e', 't', '\'', 's',' ', 'g', 'o', '\0' };

存儲字符串的數組一定比字符串長度多一個元素,以容納下字符串終止符(空字符'\0')。因此,str1 數組能夠存儲的字符串最大長度是 29。如果定義數組長度為 8,而不是 30,就會發生錯誤,因為它無法包含字符串終止符。

如果在定義一個字符數組時,沒有顯式地指定長度,但使用了字符串字面量來對它進行初始化,該數組的長度會比字符串長度多 1。如下列所示:

char str2[] = " to London!";    // 字符串長度:11 (注意開頭的空格);
                                                // 數組長度:12

下面的語句使用標準函數 strcat()把字符串 str2 附加到字符串 str1 的后面(str1 數組長度必須足夠大以容納連接后的全部字符)。

#include <string.h>
char str1[30] = "Let's go";
char str2[ ] = " to London!";
/* ... */
strcat( str1, str2 );
puts( str1 );

調用 puts()后,輸出新的 str1 數組內容:

Let's go to London!

str1 和 str2 的名字其實是兩個指針,它們指向各自數組的第一個字符。這樣的指針被稱為指向字符串的指針(pointer to a string),或者簡稱為字符串指針(string pointer)。

字符串處理函數(例如 scrcat()和 puts())需要接收字符串起始地址并將其作為參數。這樣的函數通常逐個字符地處理字符串,直到遇到結尾終止符'\0'為止。
例 1 是函數 strcat()的另——種可能的實現方式。它采用從函數參數傳入的指針遍歷處理整個字符串。 【例1】函數 strcat()

// 函數strcat() 將第二個字符串復制一份并附加到第一個字符串的尾部
// 參數:指向兩個字符串的指針
// 返回值:指向第一個字符串的指針,此時已將第二個字符串連接到了其尾部
char *strcat( char * restrict s1, const char * restrict s2 )
{
  char *rtnPtr = s1;
  while ( *s1 != '\0' )                         // 找到字符串s1的尾部
    ++s1;
  while (( *s1++ = *s2++ ) != '\0' )    // 將s2的首字符替換掉s1的終止符
    ;
  return rtnPtr;
}

以 s1 地址為起始位置的 char 數組,其長度至少是兩個字符串長度的和再加上 1,以容納字符串終止符。在調用 strcat()之前,可以采用標準函數 strlen()進行測試,以確保長度沒有問題,函數 strlen()返回其字符串參數的長度,如下所示:

if ( sizeof(str1) >= ( strlen( str1 ) + strlen( str2 ) + 1 ) )
  strcat( str1, str2 );

寬字符串字面量會加上一個前綴 L、u 或 U,它們是寬字符串的標志。因此,wchar_t 數組的初始化過程如下所示:

#include <stddef.h>                        // 定義wchart_t類型
/* ... */
wchar_t dinner[] = L"chop suey";        // 字符串長度:10;
                                                // 數組長度:11;
                                                // 數組空間大小:11 * sizeof(wchar_t)

感謝各位的閱讀,以上就是“C語言字符串數組的用法”的內容了,經過本文的學習后,相信大家對C語言字符串數組的用法這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

博湖县| 罗定市| 博白县| 武山县| 昌吉市| 潍坊市| 晋城| 洞口县| 平谷区| 和平县| 阳泉市| 武胜县| 衡水市| 华安县| 荥经县| 乐东| 时尚| 阜新市| 辽宁省| 九江县| 恩平市| 巫溪县| 天气| 洛隆县| 仪陇县| 板桥市| 昆明市| 万山特区| 桑植县| 蒙城县| 安平县| 英超| 汨罗市| 健康| 永福县| 嘉兴市| 武清区| 咸宁市| 江孜县| 临汾市| 沅陵县|