一、strcpy和strncpy
1、strcpy函數的作用是將一個字符串複製到另一個字符串中(包括’\0’),並返回目標字符串。它的原型如下:
char *strcpy(char *dest, const char *src);
參數:dest — 要複製到的目標字符串;src — 要複製的源字符串。
2、示例代碼:
char str1[] = "Hello world!"; char str2[100]; strcpy(str2, str1); printf("str2: %s", str2); // 輸出結果是:str2: Hello world!
3、strncpy函數和strcpy函數類似,不過它指定了要複製的字符數目。如果源字符串長度小於複製長度,目標字符串就用’\0’補齊。它的原型如下:
char *strncpy(char *dest, const char *src, size_t n);
參數:dest — 要複製到的目標字符串;src — 要複製的源字符串;n — 要複製的字符數目。
4、示例代碼:
char str1[] = "Hello world!"; char str2[100]; strncpy(str2, str1, 5); printf("str2: %s", str2); // 輸出結果是:str2: Hello
二、strcat和strncat
1、strcat函數的作用是將一個字符串追加到另一個字符串的末尾(包括’\0’),並返回目標字符串。它的原型如下:
char *strcat(char *dest, const char *src);
參數:dest — 要追加到的目標字符串;src — 要追加的源字符串。
2、示例代碼:
char str1[100] = "Hello "; char str2[] = "world!"; strcat(str1, str2); printf("str1: %s", str1); // 輸出結果是:str1: Hello world!
3、strncat函數和strcat函數類似,不過它指定了要追加的字符數目。如果源字符串長度小於追加長度,目標字符串就用’\0’補齊。它的原型如下:
char *strncat(char *dest, const char *src, size_t n);
參數:dest — 要追加到的目標字符串;src — 要追加的源字符串;n — 要追加的字符數目。
4、示例代碼:
char str1[100] = "Hello "; char str2[] = "world!"; strncat(str1, str2, 3); printf("str1: %s", str1); // 輸出結果是:str1: Hello wor
三、strcmp和strncmp
1、strcmp函數的作用是比較兩個字符串。如果兩個字符串相等,返回0;如果第一個字符串小於第二個字符串,返回負數;如果第一個字符串大於第二個字符串,返回正數。它的原型如下:
int strcmp(const char *s1, const char *s2);
參數:s1 — 要比較的第一個字符串;s2 — 要比較的第二個字符串。
2、示例代碼:
char str1[] = "Hello"; char str2[] = "World"; int result = strcmp(str1, str2); printf("result: %d", result); // 輸出結果是:result: -15
3、strncmp函數和strcmp函數類似,不過它指定了要比較的字符數目。它的原型如下:
int strncmp(const char *s1, const char *s2, size_t n);
參數:s1 — 要比較的第一個字符串;s2 — 要比較的第二個字符串;n — 要比較的字符數目。
4、示例代碼:
char str1[] = "Hello"; char str2[] = "World"; int result = strncmp(str1, str2, 3); printf("result: %d", result); // 輸出結果是:result: 0
四、strlen
1、strlen函數的作用是返回字符串的長度(不包括’\0’)。它的原型如下:
size_t strlen(const char *s);
參數:s — 要計算長度的字符串。
2、示例代碼:
char str[] = "Hello world!"; size_t length = strlen(str); printf("length: %lu", length); // 輸出結果是:length: 12
五、strstr
1、strstr函數的作用是在一個字符串中查找另一個子字符串第一次出現的位置,並返回該位置的指針。如果未找到子字符串,返回NULL。它的原型如下:
char *strstr(const char *haystack, const char *needle);
參數:haystack — 要搜索的字符串;needle — 要搜索的子字符串。
2、示例代碼:
char str1[] = "Hello world!"; char str2[] = "world"; char *result = strstr(str1, str2); if(result){ printf("result: %s", result); } else { printf("not found"); } // 輸出結果是:result: world!
六、memset
1、memset函數的作用是將一塊內存區域設置為給定的值。它的原型如下:
void *memset(void *s, int c, size_t n);
參數:s — 要設置的內存區域;c — 要設置的值(用無符號字符表示);n — 要設置的字節數。
2、示例代碼:
char str[100] = "hello"; memset(str, 'A', 3); printf("str: %s", str); // 輸出結果是:str: AAAllo
七、memcpy
1、memcpy函數的作用是將一個內存區域複製到另一個內存區域,它的原型如下:
void *memcpy(void *dest, const void *src, size_t n);
參數:dest — 目標內存區域;src — 要複製的源內存區域;n — 要複製的字節數。
2、示例代碼:
char str1[] = "Hello"; char str2[100]; memcpy(str2, str1, 3); printf("str2: %s", str2); // 輸出結果是:str2: Hel
八、總結
1、string.h庫是C語言的標準庫之一,包含了許多常用的字符串處理函數。
2、複製字符串的函數有strcpy和strncpy,追加字符串的函數有strcat和strncat,比較字符串的函數有strcmp和strncmp,計算字符串長度的函數有strlen,查找子字符串的函數有strstr,初始化內存的函數有memset,複製內存區域的函數有memcpy。
3、這些函數可以方便地處理字符串,並在C語言的開發中發揮重要的作用。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/248733.html