C中流行的字符串函數[附示例]
已發表: 2020-10-21C 語言中的字符串是以空字符 ('\0') 結尾的字符數組。 字符串末尾的空字符表示它的結尾,字符串總是用雙引號括起來。 在 C 語言中,字符用單引號括起來。 下面顯示了它們的一些示例;
C 字符和字符串的示例或表示
- char string[10] = { 's','d','f','d','t','j','a','\0' };
- char string[10]="新鮮";
- char string[]=”更新鮮”;
上述兩個語句中的字符串聲明之間存在細微差別。 就像我們將 char 聲明為 string[10] 時,分配了 10 個字節的內存空間來保存 string 的 10 個值,而當我們將其聲明為 string[] 時,內存在程序執行時被分配。
目錄
字符串聲明和初始化
在 C 編程中,可以通過兩種方式聲明字符串,如上所示。 在 C 編程中,字符串是一個以 null 或 '\0' 字符結尾的字符序列。 下面給出了一個相同的例子:
char temp[]="臨時字符串";
當一個字符串聲明為 char 類型並用雙引號括起來時,\0 會自動附加到字符串的末尾。 例如:

char temp[]="臨時字符串";
噸 | e | 米 | p | s | 噸 | r | 一世 | n | G | \0 |
字符串聲明
C語言中的字符串以下列方式聲明:
字符溫度[5];
s[0] s[1] s[2] s[3] s[4]
這樣,我們就可以初始化一個長度為 5 的字符串。
字符串初始化
字符串初始化可以通過多種方式完成,其中一些方式如下:
char t[]="臨時字符串";
char t[10]="臨時字符串";
char t[]={'t','e','m','d','\0'};
char t[5]={'t','e','m','d','\0'};
噸 | e | 米 | p | \0 |
t[0] t[1] t[2] t[3] t[4]
在上述類型的聲明中,我們只能存儲只有四個字符的字符串,而如果要在這樣的字符串或數組中存儲五個字符,則可能需要更長的字符數組。
閱讀: Java 中的字符串數組:帶有編碼示例的 Java 字符串數組
給字符串賦值
數組和字符串不支持賦值運算符。 一旦聲明了字符串,就不能將值分配給字符串類型變量。 例如,在 C 語言中,我們不能以下列方式編寫和分配值:
字符 t[100];
t="溫度值";
C中的字符串處理
現在我們將使用C 語言中一些流行的字符串函數,這些函數使字符串處理變得更加容易。 使用這些函數可以輕鬆地對字符串執行多項操作,例如讀取字符串、複製或反轉字符串以及許多其他操作。
字符串運算符或字符串函數可直接用於操作字符串。 在這裡,在本文中,我們將解釋諸如 gets()、puts()、strlen()、strcopy() 等庫函數以及許多其他函數,以解釋 C 中的字符串處理。
有時程序員必須編寫字符串函數來根據所需的問題來操作它們。 然而,字符串操作可以手動完成,但這會使編程變得相當複雜和龐大。
C 中有一個標準的字符串函數庫,稱為“string.h”。 這個帶有“.h”擴展名的頭文件有許多不同語法的字符串處理函數。 我們將在本文的以下部分討論其中的一些:
C中一些常用的字符串處理函數列表
功能 | 描述 |
strlen() | 可以計算字符串的長度 |
字符串() | 可以將一個字符串的內容複製到另一個 |
字符串() | 用於連接或連接兩個字符串 |
strcmp() | 可以比較兩個字符串 |
strlwr() | 可以將字符串轉換為小寫 |
Strupr() | 用於將字符串的字母轉換為大寫 |
Strrev() | 用於反轉字符串 |
當您必須在程序中使用任何字符串處理函數時,這些函數不僅限於這些。 還有許多其他功能。 所以,讓我們討論它們:
1) 放置()和獲取()
字符串頭文件gets和puts這兩個流行的函數分別用於獲取用戶的輸入和顯示字符串。 這兩個函數都在 string.h 文件中定義。 讓我們看一下這些函數的一個示例:
#包括主要()
詮釋主()
{
字符溫度[20];
printf(“輸入你的名字”);
獲取(溫度);
printf(“我的名字是:”);
放置(溫度);
返回0;
}
2) strcat()
對於必須將一個字符串附加到另一個字符串末尾的情況,正在使用此功能。 函數 strcat 可以將源字符串的副本附加到目標字符串的末尾。 用戶必須傳遞兩個參數,如下所述:

i) 源代碼
ii) 目的地
這裡指定了“src”字符串的位置,而在“dest”位置指定了我們必須附加源字符串的目標字符串。
例子
#include<字符串.h>
主函數()
{
char src[20]=“之前”;
char dest[20]=“之後”;
strcat(dest, src);
放(目的地);
返回0;
}
輸出將是: after before
3) 函數 strlen()
可以直接用於字符串的字符串頭文件的另一個函數是strlen()。 當您必須找出任何字符串的長度時,您可以使用函數 strlen(),即C 中的字符串函數。 但是,也可以手動編寫程序來找出任何字符串的長度,但是使用此直接函數可以節省您的時間,示例如下:
#include<stdio.h>
主函數()
{
整數長度;
char s[20] = “我們在這裡”;
長度=strlen(s);
printf(“字符串的\長度為= %d \n”, length);
返回0;
}
字符串的長度為 = 11
4) 函數 strcpy()
如果您必須將一個字符串的內容複製到另一個字符串,則使用此功能。 該函數的語法是 strcpy(dest,source)。 該函數可以將一個字符串的內容複製到另一個字符串。 下面給出了該函數的一個示例:
#include<字符串.h>
主函數()
{
char src[20]=“目的地”;
字符目的地[20]=“”;
printf("\n 源字符串是 = %s", src);
printf("\n 目標字符串是 = %s", dest);
strcpy(dest, src);
printf ("\nstrcpy() 之後的目標字符串 = %s", dest);
返回0;
}
輸出
源字符串是 = 目標
目標字符串是 =
strcpy() = Destination 之後的目標字符串
學習: StringBuffer 與 StringBuilder:StringBuffer 和 StringBuilder 之間的區別
5) 函數 strcmp()
要比較兩個字符串以了解它們是否相同,我們可以使用 strcmp() 函數。 該函數返回一個確定的值,可以是 0、>0 或 <0。 在此函數中,傳遞的兩個值被視為區分大小寫意味著“A”和“a”被視為不同的字母。 函數返回的值用作:
i) 當兩個字符串相同時返回 0
ii) 如果 str1<str2 則返回負值
iii) 如果 str1>str2 則返回正值
例子:
#include<stdio.h>
#include<字符串.h>
主函數()
{
char str1[]=”複製”;
char str2[]=”獎杯”;
整數 I,j,k;
i=strcmp(str1, “複製”);
j=strcmp(str1,str2);
k-strcmp(str1, “f”);
printf(“\n %d %d %d”,I,j,k);
返回0;
}
輸出:0 -1 1
6) 函數 strlwr() / strupr()
有時您可能需要將任何字符串的小寫字母轉換為大寫字母,反之亦然。 為此,在 C 中有兩個直接的字符串函數,它們可用於執行從大寫到小寫的轉換,反之亦然。 在這裡,我們已經解釋了一個相同的例子:
#include<stdio.h>
#include<字符串.h>
主函數()
{
char str[]=”將我轉換為小寫”;
printf(“%s\n”, strlwr(str));
返回0;
}
輸出:將我轉換為小寫
同樣,如果我們使用 strupr 函數代替 strlwr,那麼所有內容都將轉換為大寫字母。 我們可以使用在字符串頭文件中定義的 strupr 函數。 通過這個函數,字符串的所有字母都被轉換,也不需要任何冗長的手動過程。
7) 函數 strrev()
如果您想在不手動編寫任何龐大或擴展程序的情況下反轉任何字符串,則可以使用此功能。 函數 strrev() 用於反轉字符串的內容。 strrev 函數用於檢查字符串的性質,給定的字符串是否為回文。 字符串反轉功能還存在一些其他用途和應用。 它的用途之一如下:
#include<stdio.h>
#include<字符串.h>
主函數()
{
char temp[20]="反向";
printf("反轉前的字符串是:%s\n", temp);
printf("strrev() 後的字符串:%s", strrev(temp));
返回0;
}

更多有目的的字符串處理函數:
正如我們之前所說,C 中存在更多的字符串函數。C 中用於字符串處理的其他一些常用函數有:
功能 | 目的 |
strchr() | 它返回一個指針,指向 str1 中第一次出現的 char |
strdup() | 它可以復製字符串 |
strset() | 將字符串的所有字符設置為給定字符 |
strrchr() | 用於定位第一個指向字符的出現 |
另請閱讀: Java 中的掃描程序類:構造函數和方法的類型,如何使用
最後的話
就像所有其他語言 C 一樣,它也有一個龐大的即用型或內置函數庫。 要處理任何字符串,您可以直接使用這些函數。 然而,功能不限於這些。 頭文件中還有很多其他的C語言字符串函數。 它們的主要好處是減少編碼的時間和長度。
如果您有興趣了解有關 Java、OOP 和全棧軟件開發的更多信息,請查看 upGrad 和 IIIT-B 的全棧軟件開發 PG 文憑,該文憑專為在職專業人士設計,提供 500 多個小時的嚴格培訓,9 + 項目和任務、IIIT-B 校友身份、實用的實踐頂點項目和頂級公司的工作協助。