位置:首頁 > 高級語言 > C語言教學 > C語言字符串

C語言字符串

C語言編程中的字符串實際上是一個一維是由一個空字符'\0'終止的字符數組。因此,一個空值終止字符串包含包括字符串後跟空(null)字符。

下麵的聲明和初始化創建由單詞“Hello”的字符串。要在數組的末尾加上空(null)字符,包含字符串的字符數組的大小,實際比在單詞“Hello”的數量多了一個。

char greeting[6] = {'H', 'e', 'l', 'l', 'o', '\0'};

如果按照數組初始化的規則,那麼可以寫上述聲明如下:

char greeting[] = "Hello";

以下是上述定義串的在存儲器演示在 C/C++:

String Presentation in C/C++

其實,不需要放置空(null)字符在字符串常量的結尾。 C語言編譯器自動將'\0'放在字符串的結尾,當它初始化數組。讓我們嘗試打印提到上麵的字符串:

#include <stdio.h>

int main ()
{
   char greeting[6] = {'H', 'e', 'l', 'l', 'o', '\0'};

   printf("Greeting message: %s
", greeting );

   return 0;
}

當上述代碼被編譯和執行時,它會產生一些結果如下:

Greeting message: Hello

C語言支持多種用來操作空值終止字符串的函數:

S.N. 函數及用途
1 strcpy(s1, s2);
複製字符串s2到字符串s1
2 strcat(s1, s2);
連接字符串s2到字符串s1的末尾
3 strlen(s1);
返回字符串s1的長度
4 strcmp(s1, s2);
返回值為0,s1和s2是相同的; 如果s1<s2返回小於0; 如果s1> s2大於0
5 strchr(s1, ch);
返回一個指針,指向字符串s1中第一次出現字符ch位置
6 strstr(s1, s2);
返回一個指針,指向字符串s1中第一次出現的字符串s2位置

下麵的例子是利用小部分上述函數功能:

#include <stdio.h>
#include <string.h>

int main ()
{
   char str1[12] = "Hello";
   char str2[12] = "World";
   char str3[12];
   int  len ;

   /* copy str1 into str3 */
   strcpy(str3, str1);
   printf("strcpy( str3, str1) :  %s
", str3 );

   /* concatenates str1 and str2 */
   strcat( str1, str2);
   printf("strcat( str1, str2):   %s
", str1 );

   /* total lenghth of str1 after concatenation */
   len = strlen(str1);
   printf("strlen(str1) :  %d
", len );

   return 0;
}

當上述代碼被編譯和執行時,它會產生一些結果如下:

strcpy( str3, str1) :  Hello
strcat( str1, str2):   HelloWorld
strlen(str1) :  10

可以找到C語言字符串相關的函數在C語言標準庫的完整列表