C语言中字符串与各数值类型之间的转换方法

 更新时间:2021年03月23日 11:58:20   作者:思维之上  
这篇文章主要介绍了C语言中字符串与各数值类型之间的转换方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

C语言的算法设计中,经常会需要用到字符串,而由于c语言中字符串并不是一个默认类型,其标准库stdlib设计了很多函数方便我们处理字符串与其他数值类型之间的转换。

首先放上一段展示各函数使用的代码,大家也可以copy到自己的机器上运行观察

#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[]) {
  int num=183;
  char str[3];

  //itoa函数将整型转换为字符串数值类型 
  itoa(num,str,10);
  printf("%s\n",str);

  //atoi函数将字符串转化为整形数值类型 
  int nums=atoi(str); 
  printf("%d\n",nums);

  double dou=12.432;
  char c[80];
  char cc[80];
  //sprintf函数可以实现其他数值类型到string类型的转换
  sprintf(c,"%2.2f",dou);
  //还可以实现多个数值和字符串之间的任意连接,反正最后转换成字符串 
  sprintf(cc,"%2.3f%s",dou,"you");
  printf("%s\n",c);  
  printf("%s\n",cc);

  //将单精度或者双精度类型转化为字符串的fcvt和gcvt函数 
  //fcvt并不能显示小数点位置 
  double fcvtnum=123.456;
  char *fcvtstr;
  int decdot,sign;
  fcvtstr=fcvt(fcvtnum,2,&decdot,&sign);
  printf("%s\n",fcvtstr); 

  //gcvt能够显示小数点,其第二个参数表示有效位数字 
  char fcvtstrg[20];
  gcvt(fcvtnum,6,fcvtstrg);
  printf("%s\n",fcvtstrg);

  // strtod和atof能将字符串转化为双精度和单精度类型 
  printf("字符串转化为双精度浮点数%f\n单精度浮点数%f\n",
    strtod(fcvtstrg,NULL),atof(fcvtstrg)); 

  return 0;
}

下面对上面代码用到的各函数分类整理与描述

字符串转化为其他类型

  • atoi(char *str) :只有一个待转化字符串参数,返回整型数
  • atof(char *str) :只有一个待转化字符串参数,返回单精度浮点数
  • strtod(char *str,char *end) :一个待转化的字符串参数,和一个转化结束的字符串参数,一般将其置为NULL,返回双精度浮点数

其他数值类型转化为字符串

  • itoa(int num,char *str,10) :整形转化为字符串,第一个参数为待转化的整型值num,第二参数为转化后的结果存储字符串,第三个为转化的进制,无返回值
  • fcvt(float num,int ndigits,*decdot,*sign) :浮点型转化为字符串,第一个参数为待转化的浮点数num,第二个参数为保留的小数点后面的位数,第三个存储结果中小数点的位置,第四个参数存储数值的正负,返回转化后字符串的指针,但是字符串中并没有小数点(如123.456转化为123456),所以一般就不要用啦
  • gcvt(float num,int n,char *str) :浮点型转化为字符串,第一个参数为待转化的浮点数num,第二个参数为保留的有效位数(不是小数点后的哦),第三个参数为存储结果的字符串指针,无返回值
  • sprintf(char *str, format,float num[,float num2…]) :其他各种类型都可以通过sprintf转化为字符串str,其中format表示转化前保留的格式,并且支持多个数据类型一起转化实现连接功能

到此这篇关于C语言中字符串与各数值类型之间的转换方法的文章就介绍到这了,更多相关C语言字符串与各数值类型转换内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家! 

相关文章

  • C语言实现仓库物资管理系统

    C语言实现仓库物资管理系统

    这篇文章主要为大家详细介绍了C语言实现仓库物资管理系统,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-12-12
  • 用C语言实现一个扫雷小游戏

    用C语言实现一个扫雷小游戏

    这篇文章主要为大家详细介绍了用C语言实现一个扫雷小游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-09-09
  • OpenCV基于稠密光流实现视频跟踪详解

    OpenCV基于稠密光流实现视频跟踪详解

    这篇文章主要为大家详细介绍了OpenCV如何基于稠密光流实现视频跟踪功能,文中的示例代码讲解详细,具有一定的借鉴价值,需要的可以参考一下
    2023-02-02
  • c++11中regex正则表达式示例简述

    c++11中regex正则表达式示例简述

    这篇文章主要给大家介绍了关于c++11中regex正则表达式的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用c++11具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-11-11
  • C语言如何利用ASCII码表统计字符串每个字符出现的次数

    C语言如何利用ASCII码表统计字符串每个字符出现的次数

    这篇文章主要介绍了C语言如何利用ASCII码表统计字符串每个字符出现的次数,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-01-01
  • c++ *运算符重载

    c++ *运算符重载

    运算符重载重载运算符是C++ 的一个重要特性,使用运算符重载, 的一个重要特性,使用运算符重载, 重载运算符是程序员可以把C++ 运算符的定义扩展到运算分量是对象
    2014-09-09
  • C++实现五子棋游戏

    C++实现五子棋游戏

    这篇文章主要为大家详细介绍了C++实现五子棋游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-01-01
  • C++ lambda函数详解

    C++ lambda函数详解

    小编可以明确告诉大家:lambda函数是C++11中最重要的,使用最广泛的,最具现代风格的内容,lambda函数的出现改变了C++编程的思维方式。所以快和小编学习一下C++11中lambda函数的使用吧
    2023-02-02
  • xxx_cast类型转换的实现方法

    xxx_cast类型转换的实现方法

    下面小编就为大家带来一篇xxx_cast类型转换的实现方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-12-12
  • 用C实现PHP扩展 Fetch_Url 类数据抓取的方法

    用C实现PHP扩展 Fetch_Url 类数据抓取的方法

    该扩展是基于libcurl基础实现的网页数据抓取
    2013-04-04

最新评论