c语言学习笔记二十五

c标准库
1 字符串操作函数
   初始化字符串
#include <string.h>
/*s指向哪,返回的指针就指向哪*/
/*把s所指的内存地址开始的n个字节,都填充为c的值,c为0*/
void *memset(void *s, int c,size_t n);
   取字符串的长度
#include <string.h>
/*返回s所指字符串的长度*/
size_t strlen(const char *s);
        
        示例代码如下
char buf[]="hello";
strlen(buf);
/*错误方法*/
char buf[5]="hello";
strlen(buf);//会造成数组访问越界
    考贝字符串
strcpy 拷贝以\0结尾的字符串
strncpy 带一个参数(指定考贝多少个字节)
        示例代码:
#include <string.h>
        /*从src所指的内存拷贝n个字节到dest所指的内存地址*/
void * memcpy(void *dest, const void *src, size_t n);
/*和memcpy相同,不同的是src和dest所指的内存空间可以重叠*/
void * memmove(void *dest,const void *src, size_t n);
    连接字符串
  #include <string.h>
/*把src所指的字符串连接到dest所指的字符串后面*/
char *strcat(char *dest,const char *src);
char *strncat(char *dest,const char *src,size_t n);
    比较字符串
  #include <string.h>
/*正值表示s1小于s2*/
/*0表示s1等于s2*/
/*负值表示s1大于s2*/


/*逐个比较s1和s2的前n个字节*/
int memcmp(const void *s1,const void *s2,size_t n);
/*当字符串比较,遇到\0结束*/
int strcmp(const char *s1,const void *s2);
/*要么在一个字串中遇到\0结束,要么比较完n个字节结束*/
int strncmp(const char *s1,const char *s2,size_t n);
   搜索字符串
#include <string.h>
/*如果找到c则返回字符串s中指向字符c的指针,找不到返回null*/
char *strchr(const char *s,int c);
/*从右向左查找*/
char *strrchr(const char *s, int c);  
  
        #include <string.h>
/*从一个长字符串中查找一个子串*/
char *strstr(const char *haystack,const char *needle);
   
   分割字符串
#include <string.h>
/*str待分割字串,delim分割符*/
char *strtok(char *str,const char *delim);
char *strtok_r(char *str,const char *delim,char **saveptr);


 示例代码如下:
#include <string.h>
#include <stdio.h>


int main(void){
char str[]="root:anmin::0:root:/root:/bin/bsh:";
char *token;

token=strtok(str,":");

printf("%s\n",token);
while((token=strtok(NULL,":"))!=NULL){
printf("%s\n",token);
}
return 0;
}


posted @ 2012-12-03 20:22  retacn_yue  阅读(188)  评论(0编辑  收藏  举报