C++中不同类型数据之间的转换(不调用库函数)
来源:互联网 发布:无线网卡网络不稳定 编辑:程序博客网 时间:2024/06/05 20:08
刚毕业找工作时,老被考到这些数据类型转换题,所以总结一下比较好。
1.float型到string型的转化
//#include "stdafx.h"
#include "stdlib.h"
#include "stdio.h"
char *F2S(double d, char* str)
{
char str1[40];
int j=0,k,i;
i = (int)d; //浮点数的整数部分
while(i>0)
{
str1[j++] = i%10+'0';
// printf("%c ",str1[j-1]);
i /= 10;
}
for(k=0;k<j;k++)
str[k] = str1[j-1-k]; //while循环完以后,各个位的数字是逆序存储在str1中的,所以需要逆转
str[j++] = '.';
d -= (int)d; //浮点数的小数部分
for(i=0;i<10;i++)
{
d *= 10;
// printf("%d ",j);
str[j++] = (int)d+'0';
// printf("%c\n",str[j-1]);
d -= (int)d;
}
// printf("%d ",j);
// printf("%c***\n",str[j-1]);
// str[j] = '\0';
if(str[--j]=='0')
{
str[++j] = '\0';
// printf("%d ",j);
// printf("%c\n",str[j-1]);
}
return str;
}
int main(int argc, char* argv[])
{
double d = 365.897003120000;
char str[20];
char *p = F2S(d, str);
printf("%s\n",str);
printf("%s\n",p);
return 0;
}
2.string类型到double类型的转换
#include <iostream>
#include <string>
using namespace std;
double S2D(string s){
double res=0;
int flag=0,xs=0,ws=0;
int jc=1;
for(int i=0;i<s.size();i++){
if(s[i]=='.'){ //以“.”作为整数部分和小数部分的分界符
flag=1; //在“.”之前即整数部分时,flag值一直是0,之道遇到“.”之后,即到了小数部分,flag值变为1
continue;
}
if(flag==0){
res*=10;
res+=s[i]-'0'; //得到整数部分
}
else{
ws++; //统计小数部分的位数
xs*=10;
xs+=s[i]-'0';
}
}
for(int j=0;j<ws;j++){
jc*=10;
}
res+=xs*1.0/jc; //xs*1.0/jc会得到小数部分
return res;
}
int main (){
string s="56.93";
double d=S2D(s);
cout<<d<<endl;
return 0;
}
其他几种类型之间的转换会在后续补全。
- C++中不同类型数据之间的转换(调用库函数)
- C++中不同类型数据之间的转换(不调用库函数)
- C语言中不同类型数据之间的赋值
- 不同类型的数据之间的强制转换
- javascript不同类型数据之间运算的转换
- 不同类型之间的转换
- List中存放不同类型对象之间的转换
- 不同类型数据间的转换
- php不同类型数据的转换
- 不同类型数据间的转换
- 不同类型数据间的转换
- 不同类型数据间的转换
- 不同类型数据间的转换
- 不同类型数据间的转换
- 不同类型数据间的转换
- C# 不同类型数组之间的转换
- C++不同类型字符串之间的相互转换
- 不调用c++/c的memcpy库函数,请编写memcpy。
- C++ using namespace std 详解
- Android启动界面自动跳转
- 使用 Spirit 类在 XNA 中创建游戏中的基本单位精灵(十三)
- 美国人这样教育小学生_节选
- java递归函数测试
- C++中不同类型数据之间的转换(不调用库函数)
- stm32 fsmc 功能讲解
- 基于OpenCV的Laplace图像锐化算法
- 运行地址和加载地址
- Common Lisp语法——标准控制宏
- 字母排序问题
- theano学习指南1(翻译)
- [Discuz!模板] 听雨轩风格[GBK][utf8][一键安装 DIY][20110918更新]
- j2ee面试宝典翻译(1)