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

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;
}
  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值