C语言字符串函数集锦(一)

说起字符串函数,我想大家都不陌生。字符串函数对二进制数据、字符串和表达式执行不同的运算。下面总结了C语言中的字符串函数。

1、函数名: stpcpy

功 能: 拷贝一个字符串到另一个

用 法:

char *stpcpy(char *destin, char *source);  

程序例:

#include <stdio.h>   



#include <string.h>   




int main(void)   



{   



char string[10];   




char *str1 = "abcdefghi";   



stpcpy(string, str1);   



printf("%s\n", string);   




return 0;   



}  

2、函数名: strcat

功 能: 字符串拼接函数

用 法:

char *strcat(char *destin, char *source);  

程序例:

#include <string.h>   



#include <stdio.h>   




int main(void)   



{   



char destination[25];   




char *blank = " ", *c = "C++", *Borland = "Borland";   



strcpy(destination, Borland);   


strcat(destination, blank);   


strcat(destination, c);   



printf("%s\n", destination);   




return 0;   



}  

3、函数名: strchr

功 能: 在一个串中查找给定字符的第一个匹配之处\

用 法:

char *strchr(char *str, char c);  

程序例:

#include <string.h>   



#include <stdio.h>   




int main(void)   



{   



char string[15];   




char *ptr, c = 'r';   




strcpy(string, "This is a string");   



ptr = strchr(string, c);   



if (ptr)   




printf("The character %c is at position: %d\n", c, ptr-string);   




else   




printf("The character was not found\n");   




return 0;   



}  

4、函数名: strcmp

功 能: 串比较

用 法:

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

看Asic码,str1>str2,返回值 > 0;两串相等,返回0

程序例:

#include <string.h>   



#include <stdio.h>   




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 1\n");   




else   




printf("buffer 2 is less than buffer 1\n");   



ptr = strcmp(buf2, buf3);   



if (ptr > 0)   




printf("buffer 2 is greater than buffer 3\n");   




else   




printf("buffer 2 is less than buffer 3\n");   




return 0;   



}  

5、函数名: strncmpi

功 能: 将一个串中的一部分与另一个串比较, 不管大小写

用 法:

int strncmpi(char *str1, char *str2, unsigned maxlen);  

程序例:

#include <string.h>   



#include <stdio.h>   




int main(void)   



{   



char *buf1 = "BBB", *buf2 = "bbb";   




int ptr;   



ptr = strcmpi(buf2, buf1);   



if (ptr > 0)   




printf("buffer 2 is greater than buffer 1\n");   




if (ptr < 0)   




printf("buffer 2 is less than buffer 1\n");   




if (ptr == 0)   




printf("buffer 2 equals buffer 1\n");   




return 0;   



}  

6、函数名: strcpy

功 能: 串拷贝

用 法:

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

程序例:

#include <stdio.h>   



#include <string.h>   




int main(void)   



{   



char string[10];   




char *str1 = "abcdefghi";   



strcpy(string, str1);   



printf("%s\n", string);   




return 0;   



}  

7、函数名: strcspn

功 能: 在串中查找第一个给定字符集内容的段

用 法:

int strcspn(char *str1, char *str2);  

程序例:

#include <stdio.h>   



#include <string.h>   




#include <alloc.h>   




int main(void)   



{   



char *string1 = "1234567890";   




char *string2 = "747DC8";   




int length;   



length = strcspn(string1, string2);   



printf("Character where strings intersect is at position %d\n", length);   




return 0;   



}  

8、函数名: strdup

功 能: 将串拷贝到新建的位置处

用 法:

char *strdup(char *str);  

程序例:

#include <stdio.h>   



#include <string.h>   




#include <alloc.h>   




int main(void)   



{   



char *dup_str, *string = "abcde";   



dup_str = strdup(string);   



printf("%s\n", dup_str);   



free(dup_str);   



return 0;   



}  

9、函数名: stricmp

功 能: 以大小写不敏感方式比较两个串

用 法:

int stricmp(char *str1, char *str2);  

程序例:

#include <string.h>   



#include <stdio.h>   




int main(void)   



{   



char *buf1 = "BBB", *buf2 = "bbb";   




int ptr;   



ptr = stricmp(buf2, buf1);   



if (ptr > 0)   




printf("buffer 2 is greater than buffer 1\n");   




if (ptr < 0)   




printf("buffer 2 is less than buffer 1\n");   




if (ptr == 0)   




printf("buffer 2 equals buffer 1\n");   




return 0;   



}  

10、函数名: strerror

功 能: 返回指向错误信息字符串的指针

用 法:

char *strerror(int errnum);  

程序例:

#include <stdio.h>   



#include <errno.h>   




int main(void)   



{   



char *buffer;   



buffer = strerror(errno);   



printf("Error: %s\n", buffer);   




return 0;   



}  

11、函数名: strcmpi

功 能: 将一个串与另一个比较, 不管大小写

用 法:

int strcmpi(char *str1, char *str2);  

程序例:

#include <string.h>   



#include <stdio.h>   




int main(void)   



{   



char *buf1 = "BBB", *buf2 = "bbb";   




int ptr;   



ptr = strcmpi(buf2, buf1);   



if (ptr > 0)   




printf("buffer 2 is greater than buffer 1\n");   




if (ptr < 0)   




printf("buffer 2 is less than buffer 1\n");   




if (ptr == 0)   




printf("buffer 2 equals buffer 1\n");   




return 0;   



}  

12、函数名: strncmp

功 能: 串比较

用 法:

int strncmp(char *str1, char *str2, int maxlen);  

程序例:

相关推荐