关闭

c语言库函数学习(string)

标签: 语言stringcbuffer测试null
1176人阅读 评论(0) 收藏 举报
分类:

记得c语言大一的时候就已经学了,但是在学校学的课基本上就是应付考试的,说道了能有些知道,但是真正用起来确还差远了,因而现在我要重新开始好好学,争取能在c语言的实际应用中能成为高手,首先我准备从c语言的库函数开始。
下面是自己边学边练的一些东西,放在这,以后自己要看就不用到网上四处找了,进自己的博客就能搞定,很惬意哦。当然如果有人看到对他有帮助,那也是非常令人高兴的事,也算是自己积德了,哈哈。

 

/*

  #include <stdlib.h>
  double atof( const char *str );
  该函数将字符串转换为double类型的数据
  该函数还识别e(E)字符

  #include <stdlib.h>
  int atoi( const char *str );
  long atol( const char *str );
  这两个函数将字符串转换为int或是long类型的数据
  但是这两个函数不识别e(E)的字符
  
  相反的,可以通过sprintf函数将数字转换为字符串类
  #include <stdio.h>
  int sprintf( char *buffer, const char *format, ... );
  该函数基本上同printf函数,只是它将格式化的数据放入buffer中
  而不是像printf函数,将格式化后的数据打印大标准输入系统(控制台)
  它的返回值为写入的字符串数

  printf函数特殊情况下的说明:
    %c character  
    %d signed integers  
    %i signed integers  
    %e scientific notation, with a lowercase "e"  
    %E scientific notation, with a uppercase "E"  
    %f floating point  
    %g use %e or %f, whichever is shorter  
    %G use %E or %f, whichever is shorter  
    %o octal  
    %s a string of characters  
    %u unsigned integer  
    %x unsigned hexadecimal, with lowercase letters  
    %X unsigned hexadecimal, with uppercase letters  
    %p a pointer  
    %n the argument shall be a pointer to an integer into which is placed the number of characters written so far  
    %% a '%' sign 
    
    left-justified: %-12.5f
    default is right-justified
    to pad 0 in the spaces use 0 before : %012.4d
    use l or h with %d, %o, %i, %u, %x, %e, %f, %g means the long, double, or short types
    use # before %g, %f, %e shows to print decimal fraction whether there is or not
    use # before %x or %o tells to print '0x' or '0' before the hexidecimal number or octal number
    
  #include <ctype.h>
  int isalnum( int ch );
  测试字符ch是否是数字或是字母(a letter of the alphabet)
  类似的有:
  int isalpha( int ch );    //是否为字母
  int iscntrl( int ch );    //是否为控制符(control character (between 0 and 0x1F or equal to 0x7F))
  int isdigit( int ch );    //是否为数字
  int isgraph( int ch );    //是否为可以见的字符,不包括空格(printable character other than a space)
  int isprint( int ch );    //是否为可以打印的字符,包括空格(a printable character (including a space)
  int ispunct( int ch );    //是否为打印字符,但不是字母,数字,空格(即可打印的标点符号或是特殊的附号
                            //(a printing character but neither alphanumeric nor a space)
  int isspace( int ch );    //测试是否为空格系列(包括空格,tab键等)
                            //(single space, tab, vertical tab, form feed(换页), carriage return(回车), or newline)
                            //(ch == ' '|| ch == ' ' || ch == ' ' || ch==' ' || ch == ' ' || ch == 'v');
  int isxdigit( int ch );    //是否为十六进制的数字(A-F, a-f, or 0-9)
  int isupper( int ch );    //是否为大写字母
  int tosupper( int ch );    //返回字符ch的大写形式
  int islower( int ch );    //是否为小写字母
  int tolower( int ch );    //返回字符ch的小写形式

  #include <string.h>
  void *memchr( const void *buffer, int ch, size_t count );
  该函数寻找ch字符在buffer中的位置,如果没有找到,返回NULL,否则返回指向该字符的指针
  由于buffer为void型的,所以该数组可以是任何类型的(基本类型的)
  注:count为字节数,可以用sizeof操作符获取
  返回buffer

  #include <string.h>
  void *memset( void *buffer, int ch, size_t count );
  该函数用于设置buffer中的count字节数的值为ch值
  这个函数在初始化buffer中是一个有效的操作
  返回buffer

  #include <string.h>
  int memcmp( const void *buffer1, const void *buffer2, size_t count );
  这个函数用于比较buffer1和buffer2中前count个字符的值。前者大返回大于1的值,相等返回0值,小于返回小于0的值

  #include <string.h>
  void *memcpy( void *to, const void *from, size_t count );
  复制知道大小(count)的字符从from到to
  返回to

  #include <string.h>
  void *memmove( void *to, const void *from, size_t count );
  该函数同memcpy,但是可以实现from和to重叠的情况


  #include <string.h>
  char *strcat( char *str1, const char *str2 );
  函数将str2的内容加入str1,并且返回str1

  #include <string.h>
  char *strchr( const char *str, int ch );
  同memchr,找字符ch

  #include <string.h>
  int strcmp( const char *str1, const char *str2 );
  同memcmp函数,比较字符串的大小

  #include <string.h>
  char *strcpy( char *to, const char *from );
  同memcpy函数拷贝字符串

  注:上诉三个函数的使用mem-的区别是mem-函数是操作内存的,并且可以操作基本上所有的基本类型数据。
      它的参数传入的大小也是一字节为单位的
      而str-函数只能操作字符串,并且不用传入大小的参数,因为字符串的结尾'
0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:46013次
    • 积分:669
    • 等级:
    • 排名:千里之外
    • 原创:21篇
    • 转载:2篇
    • 译文:0篇
    • 评论:5条