#include<string.h>
1 strcpy
#include <string.h>
char *strcpy(char *str1, const char *str2);
把字符串str2(包括'\0')拷貝到字符串str1當中,並返回str1。
2 strncpy
#include <string.h>
char *strncpy(char *str1, const char *str2, size_t count);
把字符串str2中最多count個字符拷貝到字符串str1中,並返回str1。如果str2中少於count個字符,那么就用'\0'來填充,直到滿足count個字符為止。
3 strcat
#include <string.h>
char *strcat(char *str1, const char *str2);
把str2(包括'\0')拷貝到str1的尾部(連接),並返回str1。其中終止原str1的'\0'被str2的第一個字符覆蓋。
4 strncat
#include <string.h>
char *strncat(char *str1, const char *str2, size_t count);
把str2中最多count個字符連接到str1的尾部,並以'\0'終止str1,返回str1。其中終止原str1的'\0'被str2的第一個字符覆蓋。
注意,最大拷貝字符數是count+1。
5 strcmp
#include <string.h>
int strcmp(const char *str1, const char *str2);
按字典順序比較兩個字符串,返回整數值的意義如下:
- 小於0,str1小於str2;
- 等於0,str1等於str2;
- 大於0,str1大於str2;
6 strncmp
#include <string.h>
int strncmp(const char *str1, const char *str2, size_t count);
同strcmp,除了最多比較count個字符。根據比較結果返回的整數值如下:
- 小於0,str1小於str2;
- 等於0,str1等於str2;
- 大於0,str1大於str2;
7 strstr
strstr(str1,str2) 函數用於判斷字符串str2是否是str1的子串。如果是,則該函數返回str2在str1中首次出現的地址;否則,返回NULL。
8 strchr
strchr() 用來查找某字符在字符串中首次出現的位置,其原型為: char * strchr (const char *str, int c);
【參數】str 為要查找的字符串,c 為要查找的字符。
strchr() 將會找出 str 字符串中第一次出現的字符 c 的地址,然后將該地址返回。
注意:字符串 str 的結束標志 NUL 也會被納入檢索范圍,所以 str 的組后一個字符也可以被定位。
【返回值】如果找到指定的字符則返回該字符所在地址,否則返回 NULL。
返回的地址是字符串在內存中隨機分配的地址再加上你所搜索的字符在字符串位置。設字符在字符串中首次出現的位置為 i,那么返回的地址可以理解為 str + i。
提示:如果希望查找某字符在字符串中最后一次出現的位置,可以使用 strrchr() 函數。
【實例】查找字符5首次出現的位置。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(){
char *s = "0123456789012345678901234567890";
char *p;
p = strchr(s, '5');
printf("%ld\n", s);
printf("%ld\n", p);
system("pause");
return 0;
}
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(){
char *s = "0123456789012345678901234567890";
char *p;
p = strchr(s, '5');
printf("%ld\n", s);
printf("%ld\n", p);
system("pause");
return 0;
}
輸出結果: 12016464 12016469
9.memcmp:
memcmp是比較內存區域buf1和buf2的前count個字節。該函數是按字節比較的。
