搜尋
  • 登入
  • 報名
密碼重置成功

關注您感興趣的項目並了解有關它們的最新消息

C 字串

收藏 205
閱讀 91693
更新時間 2016-09-11

在 C 語言中,字串實際上是使用 null 字元 '\0' 終止的一維字元陣列。因此,以 null 結尾的字串,包含了組成字串的字元。

下面的宣告和初始化創建了一個 "Hello" 字串。由於在數組的末尾存儲了空字符,所以字符數組的大小比單字 "Hello" 的字符數多一個。

char greeting[6] = {'H', 'e', 'l', 'l', 'o', '
char greeting[] = "Hello";
'};

依據陣列初始化規則,您可以把上面的語句寫成以下語句:

#include <stdio.h>int main (){   char greeting[6] = {'H', 'e', 'l', 'l', 'o', '
Greeting message: Hello
'};    printf("Greeting message: %s\n", greeting );   return 0;}

以下是C/C++ 中定義的字串的記憶體表示:

1053.jpg

#其實,您不需要把null 字元放在字串常數的末尾。 C 編譯器會在初始化陣列時,自動把 '\0' 放在字串的最後。讓我們試著輸出上面的字串:

#include <stdio.h>#include <string.h>int main (){   char str1[12] = "Hello";   char str2[12] = "World";   char str3[12];   int  len ;   /* 复制 str1 到 str3 */
   strcpy(str3, str1);
   printf("strcpy( str3, str1) :  %s\n", str3 );   /* 连接 str1 和 str2 */
   strcat( str1, str2);
   printf("strcat( str1, str2):   %s\n", str1 );   /* 连接后,str1 的总长度 */
   len = strlen(str1);
   printf("strlen(str1) :  %d\n", len );   return 0;}

當上面的程式碼被編譯和執行時,它會產生下列結果:

strcpy( str3, str1) :  Hellostrcat( str1, str2):   HelloWorldstrlen(str1) :  10

C 中有大量操作字串的函數:

序號函數& 目的
#1strcpy(s1, s2);
複製字串s2 到字串s1。
2strcat(s1, s2);
連接字串 s2 到字串 s1 的結尾。
3strlen(s1);
傳回字串 s1 的長度。
4strcmp(s1, s2);
如果s1 和s2 是相同的,則回傳0;如果s1< s2 則回傳小於0;如果s1>s2 則回傳大於0。
5strchr(s1, ch);
傳回一個指針,指向字串s1 中字元ch 的第一次出現的位置。
6strstr(s1, s2);
傳回一個指針,指向字串s1 中字串s2 的第一次出現的位置。

下面的實例使用了上述的一些函數:

rrreee

當上面的程式碼被編譯和執行時,它會產生下列結果:

rrreee

您可以在C 標準庫中找到更多字串相關的函數。

熱AI工具
Undress AI Tool
Undress AI Tool

免費脫衣圖片

AI Clothes Remover
AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undresser.AI Undress
Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

Stock Market GPT
Stock Market GPT

人工智慧支援投資研究,做出更明智的決策

熱門工具
記事本++7.3.1
記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版
SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1
禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6
Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版
SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)