C语言常见字符串操作函数总结

 1. bcmp

原型:extern int bcmp(const void *s1, const void *s2, int n);

用法:#include <string.h>

功能:比较字符串s1和s2的前n个字节是否相等

说明:相等返回0,否则返回非0值

 2. bcopy

原型:extern void bcopy(const void *src, const void *dest, int n);

用法:#include <string.h>

功能:将字符串src的前n个字节复制到dest中

说明:bcopy不检查字符串中的空字节NULL,函数没有返回值

 3. bzero

原型:extern void bzero(void *s, int n);

用法:#include <string.h>

功能:将字符串s的前n个字节置为0

说明:没有返回值

 4. memcpy

原型:extern void *memcpy(void *dest, void* src, unsigned int count);

用法:#include <string.h>

功能:由src所指内存区域复制count个字节到dest所指内存区域

说明:src和dest所指内存区域不能重叠,函数返回指向dest的指针

 5. memccpy

原型:extern void *memccpy(void *dest, void* src, unsigned char ch, unsigned int count);

用法:#include <string.h>

功能:由src所指内存区域复制不多于count字节到dest所指内存区域,如果遇到字符ch则停止复制

说明:返回值指向字符ch后的第一个字符的指针,如果src前n个字节中不存在ch则返回NULL,ch被复制

 6. memchr

原型:extern void *memchr(void *buf, char ch, unsigned int count);

用法:#include <string.h>

功能:从buf所指内存区域的前count个字节查找字符ch

说明:当一次遇到字符ch时停止查找。如果成功,返回指向字符ch的指针;否则返回NULL

 7. memcmp

原型:extern void *memcmp(void *buf1, void *buf1, unsigned int count);

用法:#include <string.h>

功能:比较内存区域buf1和buf2的前count字节

说明:当buf1<buf2时,返回值<0

 8. memmove

原型:extern void *memmove(void *dest, const void *src, unsigned int count);

用法:#include <string.h>

功能:由src所指内存区域复制count个字节到dest所指内存区域

说明:src和dest所指内存区域可以重叠,但复制后src内容会被更改,函数返回指向dest的指针

 1 #include <stdio.h>
 2 #include <string.h>
 3 int main(void)
 4 {
 5     char* s = "hello world";
 6     memmove(s, s+3, strlen(s)-3);
 7     s[strlen(s)-3]=0;
 8     printf("s : %s\n", s);
 9 
10     return 0;
11 }
12 /* 输出:s : lo world */
memmove示例

 9. memset

原型:extern void *memset(void *buffer, int c, int count);

用法:#include <string.h>

功能:把buffer所指内存区域的前count字节设置成字符c

说明:返回指向buffer的指针

 10. movmem

原型:extern void *movmem(void *src, void* dest, unsigned int count);

用法:#include <string.h>

功能:由src所指内存区域复制count个字节到dest所指内存区域

说明:src和dest所指内存区域可以重叠,但复制后src内容会被更改,函数返回指向dest的指针

 11. strcpy

原型:extern char *strcpy(char* dest, char* src);

用法:#include <string.h>

功能:把src所指由NULL结束的字符串复制到dest所指的数组中

说明:src和dest所指内存区域不可以重叠且dest必须有足够的控件来容纳src的字符串,返回指向dest结尾处字符(NULL)的指针

 12. strcat

原型:extern char *strcat(char* dest, char* src);

用法:#include <string.h>

功能:把src所指字符串添加到dest结尾处(覆盖dest结尾处的'\0')并添加'\0'

说明:src和dest所指内存区域不可以重叠且dest必须有足够的控件来容纳src的字符串,返回指向dest的指针

 13. strncat

原型:extern char *strncat(char* dest, char* src, int n);

用法:#include <string.h>

功能:把src所指字符串的前n个字符添加到dest结尾处(覆盖dest结尾处的'\0')并添加'\0'

说明:src和dest所指内存区域不可以重叠且dest必须有足够的控件来容纳src的字符串,返回指向dest的指针

 14. strchr

原型:extern char *strcat(char* s, char c);

用法:#include <string.h>

功能:查找字符串s中首次出现字符c的位置

说明:返回首次出现c的位置的指针,如富哦s中不存在c则返回NULL

 15. strcmp

原型:extern int strcmp(char* s1, char* s2);

用法:#include <string.h>

功能:比较字符串s1和s2

说明:当s1=s2时,返回值=0,否则返回非0

 16. strcmpi

原型:extern int strcmp(char* s1, char* s2);

用法:#include <string.h>

功能:比较字符串s1和s2,但不区分字母的大小写

 17. strdup

原型:extern char* strdup(char* s);

用法:#include <string.h>

功能:复制字符串s

说明:返回指向被复制的字符串的指针,所需空间由malloc分配,需使用free释放

 18. strlen

原型:extern int strlen(char* s);

用法:#include <string.h>

功能:计算字符串s的长度

说明:返回s的长度,不包括结束符NULL

 19. strstr

原型:extern char* strstr(char* haystack, char* needle);

用法:#include <string.h>

功能:从字符串haystack中寻找needle第一次出现的位置(不比较结束符NULL)

说明:返回指向第一次出现needle位置的指针,如果没有找到则返回NULL

 20. strtok

原型:extern char* strtok(char* s, char* delim);

用法:#include <string.h>

功能:分解字符串为一组标记串,delim为分隔符字符串

说明:首次调用时,s必须指向要分解的字符串,随后调用要把s设成NULL。strtok在s中查找包含在delim中的字符并用NULL('\0')来替换,知道找遍整个字符串。返回指向下一个标记串。当没有标记串时则返回空字符NULL

 1 #include <stdio.h>
 2 #include <string.h>
 3 
 4 int main(void)
 5 {
 6     char s[] = "a, b, c";
 7     char *p;
 8     p = strtok(s, ",");
 9     while(p)
10     {
11         printf("%s\n", p);
12         p = strtok(NULL, ",");
13     }
14     return 0;
15 }
strtok示例

 

posted @ 2014-08-21 14:45  哈罗凯帝  阅读(220)  评论(0)    收藏  举报