C语言学习:简单了解下stdlib中的字符串转换函数

来源:互联网 发布:excel怎么剔除重复数据 编辑:程序博客网 时间:2024/06/06 07:28

C语言学习:简单了解下stdlib中的字符串转换函数


简介:
在学习C语言的时候,关于标准头文件stdlib中的一些函数也有所了解,在学习字符和字符串的时候,关于字符串的处理函数也有很多,在整形中字符和整形可以看似一样的来处理,但是对于字符串来说呢。怎么在数字和字符串之间进行转换,比如,在main函数中的参数都是字符串类型,但是往往需要在使用的时候将其转换成数字来进行处理。这就是需要字符串转换函数,这里只简单介绍一下stdlib中提供的一些字符串转换函数


提示:

博客:章飞_906285288
博客地址:http://blog.csdn.net/qq_29924041


函数介绍:

函数 作用 double atof(const char *nptr) 将字符串转换成双精度浮点型 int atoi(const char *nptr) 将字符串转换成整型数 long atol(const char *nptr) 将字符串转换成长整形 double strtod(const char *nptr,char **endptr) 将字符串类型转换成双精度浮点型 long int strtol(const char*nptr,char **endptr,int base) 将字符串转换成长整形数 unsigned long int strtoul(const char *nptr,char **endptr,int base) 将字符串转换成无符号长整形 char* gcvt(double num,size_t ndigits,char *buf) 将浮点型数转换成字符串 char *ecvt(double value,int ndigit,int *dec,int *sign) 将浮点数转换为字符串 char *fcvt(double value,int ndigit,int *dec,int *sign) 将浮点数变成一个字符串

简单的使用用例:

/* * =========================================================================== * *       Filename:  stringstdlib.c *    Description:  在stdlib中提供的一些关于字符串转换的函数 *        Version:  1.0 *        Created:  2017年07月23日 20时45分54秒 *       Revision:  none *       Compiler:  gcc *         Author:   (),  *        Company:   * * =========================================================================== */#include<stdio.h>#include<stdlib.h>#include<memory.h>#include<string.h>/* * *atol *atof *atod *strtod *strtol *strtoul *gcvt *egvt *fgvt * */int main(int argc,char *argv[]){  char* c_num = "95.5";  printf("atoi:%d\n",atoi(c_num));  printf("atol:%ld\n",atol(c_num));  printf("atof:%f\n",atof(c_num));  printf("atoll:%lld\n",atoll(c_num));  const char *s = {"87.99%已经完成"};  char *p; //声明一个字符指针类型变量  double d;  d = strtod(s,&p);//将字符指针的地址传入进去  printf("数值%.2f\n",d);  printf("%.2f后的字符串是:%s\n",d,p);  const char* l_s = "99的努力加百分之1的灵感";  char *l_s_p;  long l;  l = strtol(l_s,&l_s_p,10); //10是规定字符串内的进制形式  printf("l:%ld\n",l);  //将浮现类型转换成字符串,  const int NUM =  7; //转换的位数  double d_num = 1234.56789;  char d_s[NUM];  gcvt(d_num,NUM,d_s);  printf("change:%s\n",d_s);  //将浮点类型转换成字符串ecvt  float f_num = 123.445566;  const int CHANGE_NUM = 7;  char f_s[CHANGE_NUM];  int dec; //存储的小数点位置  int sig; //转换的数的符号位  strcpy(f_s,ecvt(f_num,CHANGE_NUM,&dec,&sig));  printf("string:%s dec:%d sig:%d\n",f_s,dec,sig);   f_num = -123.445566;  strcpy(f_s,ecvt(f_num,15,&dec,&sig));  printf("string:%s dec:%d sig:%d\n",f_s,dec,sig);   return 0;}