C字符串
在C語言中,字符串實際上是使用null
字符'\0'
終止一堆字符串的。
我們聲明和創建一個Hello
字符串,由於數組末尾多了個空字符串,所以比Hello
字符串個數多一個。
char greeting[6] = {'H', 'e', 'l', 'l', 'o', '\0'}
根據數組的規則,我們可以簡化聲明和創建:
char greeting[] = "Hello";
內存表示:
其實我們不需要把null
字符放在字符串末尾,C編譯器會自動補充。
#include <stdio.h>
int main ()
{
char greeting[6] = {'H', 'e', 'l', 'l', 'o', '\0'};
printf("Greeting message: %s\n", greeting );
return 0;
}
C中有大量操作字符串的函數
函數 | 功能 |
---|---|
strcpy(s1, s2); | 複製字符串 s2 到字符串 s1。 |
strcat(s1, s2); | 連接字符串 s2 到字符串 s1 的末尾。 |
strlen(s1); | 返回字符串 s1 的長度。 |
strcmp(s1, s2); | 如果 s1 和 s2 是相同的,則返回 0;如果 s1 |
#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;
}