码迷,mamicode.com
首页 > 编程语言 > 详细

c语言笔记 数组2

时间:2018-02-11 23:36:29      阅读:204      评论:0      收藏:0      [点我收藏+]

标签:拼接   停止   strcat   res   标准   一个个   strncmp   字符   编译   

15. c99以前一直使用 gets 和 puts来输入输出字符串,但是gets因为无法获知内存大小,容易出现内存溢出(对此c99对gets,采取保留态势,c11直接废除,但是某些编译器仍然默认可以使用)。 gets会等待输入换行结束,但是gets返回的字符串却删除了换行符,对应的puts在末未添加了换行符。总之get put类函数,总是一行一行打印。fgets和fputs用来替代目前的函数,主要是定义了长度这个参数,还有第三个参数 stdio 和stdout(麻烦)。fgets 与gets不同,保留了用户输入的回车键,并在字符串末尾加上了‘/0’。fputs对应的不再加上换行符。特别的 fputs在目标内存满的时候,会返回空指针,这个特性使它应用起来要方便的多。对应的c11增加了 gets_s 和 s_gets两个函数,使字符串的情形更为复杂。gets_s:1.只能作为标准输入,不需要fgets第三个参数 2.丢弃换行符 3.内存溢出后,首先‘/0’替换首字符,丢弃以后的所有数据,直到出现换行符或者文件结尾,返回空指针。(what? 这些特性也造成了,该函数即便出错,用户也无法察觉)  s_gets :1.用空字符替代换行符 2.读取一部分数据丢弃其他数据 3.不再返回 null指针。  有缺陷,如果输入丢失了换行,用户完全不知道发生了什么错误,还是不要看的好。(C11搞出了这两个东西?)scanf 你可理解为抓取一个个字符,put get对象是字符串。

16.对于字符串函数

  1 char * strcpy(char * restrict s1 , const char * restrict s2);//将指针指向s2处的字符串 copy到s1指向的位置
  2 char * strncpy(char * restrict s1 , const char * restrict s2,size_t n);//将指针指向s2处的字符串 copy到s1指
  3 //向的位置 strncpy  多了一个 n 指的是有n个字符要拷贝,因为内存溢出的问题
  4 char * strcat(char * restrict s1,const char * restrict s2);//字符串拼接 将s2拼接到s1,去掉空字符,返回s1地址
  5 char * strncat(char * restrict s1,const char * restrict s2,size_t n);//字符串拼接 将s2拼接到s1,去掉空字符,返回s1地址,n个字符
  6 int strcmp(const char * s1,const char * s2);//如果s1机器排序在s2后面,返回正数,如果s1排序在s2之前,返回负数,相等返回0
  7 //机器排序?两个字符串首字符 a-z A-Z就是ascii 中实际位置的前后
  8 int strncmp(const char * s1,const char * s2,size_t n);//如果s1机器排序在s2后面,返回正数,如果s1排序在s2之前,返回负数,
  9 //相等返回0 比较n个字符后 停止 或者遇到空字符
 10 char * strchr(const char * s ,int c);//返回首次出现 c字符的指针 未找到返回null
 11 char * strpbrk(const char *s1 ,const char * s2);//如果s1包含s2任意字符,返回s1首地址,否则 null
 12 char *strrchr(const char *s,int c);//c字符最后一次出现的位置,如果没有null
 13 char  *strstr(const char * s1,const char * s2);//s1 中s2出现的首位置,如果没有返回null
 14 size_t strlen(const char *s);//不包括空字符的字符数
 15 


c语言笔记 数组2

标签:拼接   停止   strcat   res   标准   一个个   strncmp   字符   编译   

原文地址:https://www.cnblogs.com/polar-lights/p/8443386.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!