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

2021-03-12 16:13:12 字數 3369 閱讀 4234

1樓:匿名使用者

字串函式

在標頭檔案中定義了兩組字串函式。第一組函式的名字以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

2樓:匿名使用者

假設這個一維字串陣列是str[80]----不一定是一維字串陣列,多維陣列,結構都可以。

方法1:使用執行庫函式memset():

memset(str, 0, sizeof(str));

方法2:使用windows api函式zeromemory():

zeromemory(str, sizeof(str));

但不能用於指標。指標的情況下,必須這樣:

struct mystr *p;

...memset(p, 0, sizeof(struct mystr));

或:zeromemory(p, sizeof(struct mystr));

3樓:引言

沒有.例如c[1000];

用 char c[10000],a=;

strcpy(c,a);

就可以清空

跪求c語言字串處理函式,跪求 c語言字串 7個處理函式

1.字串連線函式 strcat 原型 char strcat char str1,const char str2 2.字串查詢函式 strchr 原型 char strchr const char str1,const char str2 3.字串比較函式 strcmp 原型 int strcmp ...

C語言中gets函式輸入字串,不能放在迴圈中重複輸入

include include int main return 0 scanf輸入後那個回車被gets str 接收了內,所以下次容 遇到gets就不再等待你輸入,可以用getchar 把scanf輸入後的回車接收就好了。我執行過的,給最佳答案哦!每次使用了輸入輸出函式後,可以直接使用 fflush...

c語言中用scanf函式輸入字串後用strcmp函式比較

那個抄,字串是襲 有結尾符的啊 bai。長du度應該 zhi宣告為3.int main 字元陣列不能用這bai樣du 的方式賦值,b ab 並且字元數zhi組的長dao度版要比,實際長度 1,因為系統會在數權組內部自動加一個 0 作為字串的結束標誌,它佔一個空間,你如進行賦值的話用 可以用gets和...