C語言中對字串進行操作的標準庫函式有哪些

2021-05-14 11:46:40 字數 6741 閱讀 8058

1樓:匿名使用者

1)字串操作

strcpy(p, p1) 複製字串

strncpy(p, p1, n) 複製指定長度字串

strcat(p, p1) 附加字串

strncat(p, p1, n) 附加指定長度字串

strlen(p) 取字串長度

strcmp(p, p1) 比較字串

strcasecmp忽略大小寫比較字串

strncmp(p, p1, n) 比較指定長度字串

strchr(p, c) 在字串中查詢指定字元

strrchr(p, c) 在字串中反向查詢

strstr(p, p1) 查詢字串

strpbrk(p, p1) 以目標字串的所有字元作為集合,在當前字串查詢該集合的任一元素

strspn(p, p1) 以目標字串的所有字元作為集合,在當前字串查詢不屬於該集合的任一元素的偏移

strcspn(p, p1) 以目標字串的所有字元作為集合,在當前字串查詢屬於該集合的任一元素的偏移

* 具有指定長度的字串處理函式在已處理的字串之後填補零結尾符

2)字串到數值型別的轉換

strtod(p, ppend) 從字串 p 中轉換 double 型別數值,並將後續的字串指標儲存到 ppend 指向的 char* 型別儲存。

strtol(p, ppend, base) 從字串 p 中轉換 long 型別整型數值,base 顯式設定轉換的整型進位制,設定為 0 以根據特定格式判斷所用進位制,0x, 0x 字首以解釋為十六進位制格式整型,0 字首以解釋為八進位制格式整型

atoi(p) 字串轉換到 int 整型

atof(p) 字串轉換到 double 符點數

atol(p) 字串轉換到 long 整型

3)字元檢查

isalpha() 檢查是否為字母字元

isupper() 檢查是否為大寫字母字元

islower() 檢查是否為小寫字母字元

isdigit() 檢查是否為數字

isxdigit() 檢查是否為十六進位制數字表示的有效字元

isspace() 檢查是否為空格型別字元

is**trl() 檢查是否為控制字元

ispunct() 檢查是否為標點符號

isalnum() 檢查是否為字母和數字

isprint() 檢查是否是可列印字元

isgraph() 檢查是否是圖形字元,等效於 isalnum() | ispunct()

2樓:瓢妒仁

1、itoa  功能:把一整數轉換為字串  用法:char*itoa(intvalue,char*string,intradix);  詳細解釋:

itoa是英文integertoarray(將int整型數轉化為一個字串,並將值儲存在陣列string中)的縮寫.  引數:  value:

待轉化的整數。  radix:是基數的意思,即先將value轉化為radix進位制的數,範圍介於2-36,比如10表示10進位制,16表示16進位制。

  *string:儲存轉換後得到的字串。  返回值:

  char*:指向生成的字串,同*string。  備註:

該函式的標頭檔案是"stdlib.h"  2、ltoa  功能:把一長整形轉換為字串  用法:

char*ltoa(longvalue,char*string,intradix);  詳細解釋:itoa是英文longintegertoarray(將longint長整型數轉化為一個字串,並將值儲存在陣列string中)的縮寫.  引數:

  value:待轉化的長整型數。  radix:

是基數的意思,即先將value轉化為radix進位制的數,範圍介於2-36,比如10表示10進位制,16表示16進位制。  *string:儲存轉換後得到的字串。

  返回值:  char*:指向生成的字串,同*string。

  備註:該函式的標頭檔案是"stdlib.h"  3、ultoa  功能:

把一無符號長整形轉換為字串  用法:char*ultoa(unsignedlongvalue,char*string,intradix);  詳細解釋:itoa是英文unsignedlongintegertoarray(將unsignedlongint無符號長整型數轉化為一個字串,並將值儲存在陣列string中)的縮寫.

  引數:  value:待轉化的無符號長整型數。

  radix:是基數的意思,即先將value轉化為radix進位制的數,範圍介於2-36,比如10表示10進位制,16表示16進位制。  *string:

儲存轉換後得到的字串。  返回值:  char*:

指向生成的字串,同*string。  備註:該函式的標頭檔案是"stdlib.

h"  4、gcvt  功能:把浮點型數轉換為字串,取四捨五入  用法:char*gcvt(doublevalue,in***igit,char*buf);  詳細解釋:

gcvt()用來將引數number轉換成ascii碼字串,引數ndigits表示顯示的位數。gcvt()與ecvt()和fcvt()不同的地方在於,gcvt()所轉換後的字串包含小數點或正負符號。若轉換成功,轉換後的字串會放在引數buf指標所指的空間。

  引數:  value:待轉化的浮點數。

  ndigit:儲存的有效數字位數。  *buf:

結果的儲存位置。  返回值:  char*:

指向生成的字串,同*buf。  備註:該函式的標頭檔案是"stdlib.

h"  5、ecvt  功能:將雙精度浮點型數轉換為字串,轉換結果中不包括十進位制小數點  用法:char*ecvt(doublevalue,in***igit,int*decpt,int*sign);  詳細解釋:

ecvt函式把一個雙精度浮點數轉換成一個字串。value引數是要轉換的浮點數。這個函式儲存最多ndigit個數字值作為一個字串,並新增一個空數字符('\0'),如果value中的數字個數超過ndigit,低位數字被舍入。

如果少於ndigit個數字,該字串用0填充。  只有數字才儲存在該字串中,小數點位置和value符號在呼叫之後從decpt和sign獲取。decpt引數指出給出小數點位置的整數值,它是從該字串的開頭位置計算的。

0或負數指出小數點在第一個數字的左邊。sign引數指出一個指出轉換的數的符號的整數。如果該整數為0,這個數為正數,否則為負數。

  引數:  value:待轉換的雙精度浮點數。

  ndigit:儲存的有效數字位數。  *decpt:

儲存的小數點位置。  *sign:轉換的數的符號。

  返回值:  char*:指向生成的字串。

  備註:該函式的標頭檔案是"stdlib.h"  6、fcvt  功能:

指定位數為轉換精度,其餘同ecvt  用法:char*fcvt(doublevalue,in***igit,int*decpt,int*sign);  詳細解釋:fcvt函式把一個雙精度浮點數轉換成一個字串。

value引數是要轉換的浮點數。參與轉換的實際值保留的小數位數由ndigit決定。  只有數字才儲存在該字串中,小數點位置和value符號在呼叫之後從decpt和sign獲取。

decpt引數指出給出小數點位置的整數值,它是從該字串的開頭位置計算的。0或負數指出小數點在第一個數字的左邊。sign引數指出一個指出轉換的數的符號的整數。

如果該整數為0,這個數為正數,否則為負數。  引數:  value:

待轉換的雙精度浮點數  ndigit:轉換的字串中包含小數點後幾位  *decpt:返回小數點在串中的位置  *sign:

符號標誌。  返回值:  char*:

指向生成的字串。  備註:該函式的標頭檔案是"stdlib.h"

c語言中清空字串的庫函式

3樓:匿名使用者

字串函式

在標頭檔案中定義了兩組字串函式。第一組函式的名字以str開頭;第二組函式的名字以mem開頭。只有函式memmove對重疊物件間的拷貝進行了定義,而其他函式都未定義。

比較類函式將其變數視為unsigned char型別的陣列。

1.strcpy

#include

char *strcpy(char *str1, const char *str2);

把字串str2(包括'\0')拷貝到字串str1當中,並返回str1。

2. strncpy

#include

char *strncpy(char *str1, const char *str2, size_t count);

把字串str2中最多count個字元拷貝到字串str1中,並返回str1。如果str2中少於count個字元,那麼就用'\0'來填充,直到滿足count個字元為止。

3.strcat

#include

char *strcat(char *str1, const char *str2);

把str2(包括'\0')拷貝到str1的尾部(連線),並返回str1。其中終止原str1的'\0'被str2的第一個字元覆蓋。

4.strncat

#include

char *strncat(char *str1, const char *str2, size_t count);

把str2中最多count個字元連線到str1的尾部,並以'\0'終止str1,返回str1。其中終止原str1的'\0'被str2的第一個字元覆蓋。

注意,最大拷貝字元數是count+1。

5.strcmp

#include

int strcmp(const char *str1, const char *str2);

按字典順序比較兩個字串,返回整數值的意義如下:

小於0,str1小於str2;

等於0,str1等於str2;

大於0,str1大於str2;

6 strncmp

#include

int strncmp(const char *str1, const char *str2, size_t count);

同strcmp,除了最多比較count個字元。根據比較結果返回的整數值如下:

小於0,str1小於str2;

等於0,str1等於str2;

大於0,str1大於str2;

7 strchr

#include

char *strchr(const char *str, int ch);

返回指向字串str中字元ch第一次出現的位置的指標,如果str中不包含ch,則返回null。

8 strrchr

#include

char *strrchr(const char *str, int ch);

返回指向字串str中字元ch最後一次出現的位置的指標,如果str中不包含ch,則返回null。

9 strspn

#include

size_t strspn(const char *str1, const char *str2);

返回字串str1中由字串str2中字元構成的第一個子串的長度。

10 strcspn

#include

size_t strcspn(const char *str1, const char *str2);

返回字串str1中由不在字串str2中字元構成的第一個子串的長度。

11 strpbrk

#include

char *strpbrk(const char *str1, const char *str2);

返回指向字串str2中的任意字元第一次出現在字串str1中的位置的指標;如果str1中沒有與str2相同的字元,那麼返回null。

12 strstr

#include

char *strstr(const char *str1, const char *str2);

返回指向字串str2第一次出現在字串str1中的位置的指標;如果str1中不包含str2,則返回null。

13 strlen

#include

size_t strlen(const char *str);

返回字串str的長度,'\0'不算在內。

14 strerror

#include

char *strerror(int errnum);

返回指向與錯誤序號errnum對應的錯誤資訊字串的指標(錯誤資訊的具體內容依賴於實現)。

15 strtok

#include

char *strtok(char *str1, const char *str2);

在str1中搜尋由str2中的分界符界定的單詞。

對strtok()的一系列呼叫將把字串str1分成許多單詞,這些單詞以str2中的字元為分界符。第一次呼叫時str1非空,它搜尋str1,找出由非str2中的字元組成的第一個單詞,將str1中的下一個字元替換為'\0',並返回指向單詞的指標。

隨後的每次strtok()呼叫(引數str1用null代替),均從前一次結束的位置之後開始,返回下一個由非str2中的字元組成的單詞。當str1中沒有這樣的單詞時返回null。每次呼叫時字串str2可以不同。

如:char *p;

p = strtok("the summer soldier,the sunshine patriot", " ");

printf("%s", p);

do while (p);

顯示結果是:the | summer | soldier | the | sunshine | patriot

關於C語言字串操作

對的。字串結束符 0始終是字串的一部分,這是編譯器加上去的,是為了標記字串何時結束。str s 不能這樣判斷,前者的值是地址值,即常量指標,後者的值是 s 的ascll碼,根本不能比較。改為這樣比較一個字元的字元倒可,如下 str s 注意陣列名是它的首元素地址的常量指標。如你上面所寫的即可。在定義...

c語言中字串如何轉為整型數值,C語言中 字串如何轉為整型數值

在c語言中將字串轉化成整型有兩種方法。1 用atoi函式。atoi的功能就是將字串轉為整型並返回。其宣告為int atoi char str 比如atoi 1234 會返回整型1234。要呼叫atoi,需要引用標頭檔案stdio.h2 用sscanf。sscanf與標準格式化輸入函式scanf類似,...

C語言中字串常量和字元常量的區別

字元常量是單引號中的,在ascii表中有對應編號,字串是雙引號中的,單引號是字元常量 雙引號是字串常量 字串常量是一個或多個字元組成的常量 比方說一個字串常量a 給它的初始值是 abc123 可以是一個字元 5 構成但是字元常量只能是一個字元 比方說一個字元常量 a它的初始值為 1 不能多於一個字元...