1、C语言字符串函数大全C语言字符串函数大全stpcpy 2strcat 2strchr 3strcmp 3strncmpi 4strcpy 4strcspn 5strdup 5stricmp 6strerror 6strcmpi 7strncmp 7strncmpi 8strncpy 9strnicmp 9strnset 10strpbrk 10strrchr 11strrev 11strset 12strspn 12strstr 12strtod 13strtok 13strtol 14strupr 14swab 15stpcpy功 能:把src所指由NULL结束的字符串复制到dest所指的数
2、组中。 说 明:src和dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串。返回指向dest结尾处字符(NULL)的指针。用 法:char *stpcpy(char *destin,char *source);程序例: #include #include int main(void) char string10; char *str1 =abcdefghi; stpcpy(string, str1); printf(%sn, string); return 0; strcat功 能:把src所指字符串添加到dest结尾处(覆盖dest结尾处的0)并添加0。说 明:sr
3、c和dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串。返回指向dest的指针。用 法:char *strcat(char *destin,char *source);程序例: #include #include int main(void) char destination25; char *blank = , *c =C+, *Borland =Borland; strcpy(destination, Borland); strcat(destination, blank); strcat(destination, c); printf(%sn, destinat
4、ion); return 0; strchr功 能:在一个串中查找给定字符的第一个匹配之处用 法:char *strchr(char *str,char c);程序例: #include #include int main(void) char string15; char *ptr, c =r; strcpy(string,This is a string); ptr = strchr(string, c); if (ptr) printf(The character %c is at position: %dn, c, ptr-string); else printf(The charac
5、ter was not foundn); return 0; strcmp功 能:串比较用 法:int strcmp(char *str1,char *str2);看Asic码,str1str2,返回值 0;两串相等,返回0程序例: #include #include int main(void) char *buf1 =aaa, *buf2 =bbb, *buf3 =ccc; int ptr; ptr = strcmp(buf2, buf1); if (ptr 0) printf(buffer 2 is greater than buffer 1n); else printf(buffer
6、2 is less than buffer 1n); ptr = strcmp(buf2, buf3); if (ptr 0) printf(buffer 2 is greater than buffer 3n); else printf(buffer 2 is less than buffer 3n); return 0; strncmpi功 能:将一个串中的一部分与另一个串比较,不管大小写用 法:int strncmpi(char *str1,char *str2,unsigned maxlen);程序例: #include #include int main(void) char *bu
7、f1 =BBB, *buf2 =bbb; int ptr; ptr = strcmpi(buf2, buf1); if (ptr 0) printf(buffer 2 is greater than buffer 1n); if (ptr 0) printf(buffer 2 is less than buffer 1n); if (ptr = 0) printf(buffer 2 equals buffer 1n); return 0; strcpy功 能:把src所指由NULL结束的字符串复制到dest所指的数组中。 说 明:src和dest所指内存区域不可以重叠且dest必须有足够的空间
8、来容纳src的字符串。返回指向dest的指针。用 法:char *strcpy(char *str1,char *str2);程序例: #include #include int main(void) char string10; char *str1 =abcdefghi; strcpy(string, str1); printf(%sn, string); return 0; strcspn功 能:在串中查找第一个给定字符集内容的段用 法:int strcspn(char *str1,char *str2);程序例: #include #include #include int main(
9、void) char *string1 =1234567890; char *string2 =747DC8; int length; length = strcspn(string1, string2); printf(Character where strings intersect is at position %dn, length); return 0; strdup功 能:将串拷贝到新建的位置处用 法:char *strdup(char *str);程序例: #include #include #include int main(void) char *dup_str, *stri
10、ng =abcde; dup_str = strdup(string); printf(%sn, dup_str); free(dup_str); return 0; stricmp功 能:以大小写不敏感方式比较两个串用 法:int stricmp(char *str1,char *str2);程序例: #include #include int main(void) char *buf1 =BBB, *buf2 =bbb; int ptr; ptr = stricmp(buf2, buf1); if (ptr 0) printf(buffer 2 is greater than buffer
11、 1n); if (ptr 0) printf(buffer 2 is less than buffer 1n); if (ptr = 0) printf(buffer 2 equals buffer 1n); return 0; strerror功 能:返回指向错误信息字符串的指针用 法:char *strerror(int errnum);程序例: #include #include int main(void) char *buffer; buffer = strerror(errno); printf(Error: %sn, buffer); return 0; strcmpi功 能:
12、将一个串与另一个比较,不管大小写用 法:int strcmpi(char *str1,char *str2);程序例: #include #include int main(void) char *buf1 =BBB, *buf2 =bbb; int ptr; ptr = strcmpi(buf2, buf1); if (ptr 0) printf(buffer 2 is greater than buffer 1n); if (ptr 0) printf(buffer 2 is less than buffer 1n); if (ptr = 0) printf(buffer 2 equals
13、 buffer 1n); return 0; strncmp功 能:串比较用 法:int strncmp(char *str1,char *str2,int maxlen);程序例: #include #include int main(void) char *buf1 =aaabbb, *buf2 =bbbccc, *buf3 =ccc; int ptr; ptr = strncmp(buf2,buf1,3); if (ptr 0) printf(buffer 2 is greater than buffer 1n); else printf(buffer 2 is less than bu
14、ffer 1n); ptr = strncmp(buf2,buf3,3); if (ptr 0) printf(buffer 2 is greater than buffer 3n); else printf(buffer 2 is less than buffer 3n); return(0); strncmpi功 能:把串中的一部分与另一串中的一部分比较,不管大小写用 法:int strncmpi(char *str1,char *str2);程序例: #include #include int main(void) char *buf1 =BBBccc, *buf2 =bbbccc; i
15、nt ptr; ptr = strncmpi(buf2,buf1,3); if (ptr 0) printf(buffer 2 is greater than buffer 1n); if (ptr 0) printf(buffer 2 is less than buffer 1n); if (ptr = 0) printf(buffer 2 equals buffer 1n); return 0; strncpy功 能:串拷贝用 法:char *strncpy(char *destin,char *source,int maxlen);程序例: #include #include int m
16、ain(void) char string10; char *str1 =abcdefghi; strncpy(string, str1, 3); string3 =0; printf(%sn, string); return 0; strnicmp功 能:不注重大小写地比较两个串用 法:int strnicmp(char *str1,char *str2,unsigned maxlen);程序例: #include #include int main(void) char *buf1 =BBBccc, *buf2 =bbbccc; int ptr; ptr = strnicmp(buf2,
17、buf1, 3); if (ptr 0) printf(buffer 2 is greater than buffer 1n); if (ptr 0) printf(buffer 2 is less than buffer 1n); if (ptr = 0) printf(buffer 2 equals buffer 1n); return 0; strnset功 能:将一个串中的所有字符都设为指定字符用 法:char *strnset(char *str,char ch,unsigned n);程序例: #include #include int main(void) char *strin
18、g =abcdefghijklmnopqrstuvwxyz; char letter =x; printf(string before strnset: %sn, string); strnset(string, letter, 13); printf(string after strnset: %sn, string); return 0; strpbrk功 能:在串中查找给定字符集中的字符用 法:char *strpbrk(char *str1,char *str2);程序例: #include #include int main(void) char *string1 =abcdefgh
19、ijklmnopqrstuvwxyz; char *string2 =onm; char *ptr; ptr = strpbrk(string1, string2); if (ptr) printf(strpbrk found first character: %cn, *ptr); else printf(strpbrk didnt find character in setn); return 0; strrchr功 能:在串中查找指定字符的最后一个出现用 法:char *strrchr(char *str,char c);程序例: #include #include int main(v
20、oid) char string15; char *ptr, c =r; strcpy(string,This is a string); ptr = strrchr(string, c); if (ptr) printf(The character %c is at position: %dn, c, ptr-string); else printf(The character was not foundn); return 0; strrev功 能:串倒转用 法:char *strrev(char *str);程序例: #include #include int main(void) ch
21、ar *forward =string; printf(Before strrev(): %sn, forward); strrev(forward); printf(After strrev(): %sn, forward); return 0; strset功 能:将一个串中的所有字符都设为指定字符用 法:char *strset(char *str,char c);程序例: #include #include int main(void) char string10 =123456789; char symbol =c; printf(Before strset(): %sn, stri
22、ng); strset(string, symbol); printf(After strset(): %sn, string); return 0; strspn功 能:在串中查找指定字符集的子集的第一次出现用 法:int strspn(char *str1,char *str2);程序例: #include #include #include int main(void) char *string1 =1234567890; char *string2 =123DC8; int length; length = strspn(string1, string2); printf(Charac
23、ter where strings differ is at position %dn, length); return 0; strstr功 能:在串中查找指定字符串的第一次出现用 法:char *strstr(char *str1,char *str2);程序例: #include #include int main(void) char *str1 =Borland International, *str2 =nation, *ptr; ptr = strstr(str1, str2); printf(The substring is: %sn, ptr); return 0; strt
24、od功 能:将字符串转换为double型值用 法:double strtod(char *str,char *endptr);程序例: #include #include int main(void) char input80, *endptr; double value; printf(Enter a floating point number:); gets(input); value = strtod(input, &endptr); printf(The string is %s the number is %lfn, input, value); return 0; strtok功
25、能:查找由在第二个串中指定的分界符分隔开的单词用 法:char *strtok(char *str1,char *str2);程序例: #include #include int main(void) char input16 =abc,d; char *p; /* strtok places a NULL terminator in front of the token, if found */ p = strtok(input,); if (p) printf(%sn, p); /* A second call to strtok using a NULL as the first par
26、ameter returns a pointer to the character following the token */ p = strtok(NULL,); if (p) printf(%sn, p); return 0; strtol功 能:将串转换为长整数用 法:long strtol(char *str,char *endptr,int base);程序例: #include #include int main(void) char *string =87654321, *endptr; long lnumber; /* strtol converts string to long integer */ lnumber = strtol(string, &endpt