《C和指针》 读书笔记 -- 第9章 字符串、字符和字节

1.字符串以NUL结尾,但字符串长度不包括NUl字节。

2.复制字符串

  char *strcpy(char *dst,char const *src);

3.连接字符串

  char *strcat(char *dst,char const *src);

4.字符串比较

  int strcmp(char const *s1,char const *s2);

5.   长度受限的字符串函数

  char *strncpy(char *dst,char const *src,size_t len);//strlen(src)>=len 它的结果将不会以NUl字节结尾,可以buffer[BSIZE-1]='\0'来他添加NUL字节。

  char *strncat(char *dst,char const *src,size_t len);

  int strncmp(char const *s1,char const *s2,size_t len);

6.字符串查找基础  

  6.1查找一个字符串

    char *strchr(char const *str,int ch);

    char *strrchr(char const *str,int ch);//返回该字符串中该字符最后一次出现的位置。

    e.g.  ans=strchr(string,'h');

  6.2查找任何几个字符

    char *strpbrk(char const *str,char const *group);//返回第一个匹配的group中任何一个字符的字符位置。

  6.3查找一个子串

    char *strstr(char const *s1,char const *s2);

7.高级字符查找

  7.1查找一个字符串前缀  (P 182)

    size_t strspn(char const *str,char const *group);

    size_t strcspn(char const *str,char const *group);  

  7.2查找标记

    char *strtok(char *str,char const *sep);//strtok找到str的下一个标记,并将其用NUL结尾,然后返回一个指向这个标记的指针。

    【1】如果第一个参数不是NULL,函数找到第一个标记,strtok保存其位置。

    【2】如果第一个参数为NULL,函数就在同一个字符串中从这个被保存的位置开始查找下一个标记,如果没标记了,就返回NULL指针。

    e.g.    for(token = strtok(line,whitespace);token != NULL;token=strtok(NULL,whitespace))

          printf("Next token is %s \n",token);

8.内存操作 遇到NUL不会停止操作

  void *memcpy(void *dst,void const *src,size_t length);//第三个参数指定复制的长度(以字节计)  ===》 memcpy(saved_answers,answers,count*sizeof(answer[0]));

  void *memmove(void *dst,void const *src,size_t length);

  void *memcmp(void const *a,void const *b,size_t length);

  void *memchr(void const *a,int ch,size_t length);

  void *memset(void *a,int ch,size_t length);//把从a开始的length个字节设为字符值ch。   常用!!  

 

 

 

 

 

 

 

 

posted on 2013-10-11 16:57  熊猫酒仙是也  阅读(321)  评论(0编辑  收藏  举报

导航