C/C++各种数据类型转换汇总

来源:互联网 发布:淘宝的运营模式是 编辑:程序博客网 时间:2024/05/21 19:42

#include <stdio.h>#include <stdlib.h>#include <iostream>#include <string>#include <string.h>int main(){ // 1--> int to char[] int tmp1 = 100; char ch1[15]; sprintf(ch1, "%d", tmp1); std::cout<<ch1<<std::endl; // 2--> int to string int tmp2 = 111; char ch2[15]; sprintf(ch2, "%d", tmp2); std::string str2; str2 = std::string(ch2); std::cout<<str2<<std::endl; // 3--> int to enum enum enum3 {  A,  B }; int tmp3 = 222; enum3 val3 = static_cast<enum3>(tmp3); std::cout<<val3<<std::endl; // 4--> char[] to string char arr4[] = "this is a sample"; std::string str4; str4 = std::string(arr4); std::cout<<str4<<std::endl; // 5--> char to int char ch5 = '8'; int val5 = ch5 - '0';// val5 is bounded by 0 to 9 std::cout<<val5<<std::endl; // 6--> char[] to int char arr6[] = "12345"; int tmp6; sscanf(arr6, "%d", &tmp6); std::cout<<tmp6<<std::endl; // 7--> char* to int char* pch7 = "444"; int tmp7; tmp7 = atoi(pch7); std::cout<<tmp7<<std::endl; // 8--> char* to float char* pch8 = "55.5"; float tmp8; tmp8 = (float)atof(pch8); std::cout<<tmp8<<std::endl; // 9--> char* to double char* pch9 = "66.666"; double tmp9; tmp9 = atof(pch9); std::cout<<tmp9<<std::endl; // 10--> float to char[] float tmp10 = 11.11; char ch10[20]; sprintf(ch10, "%f", tmp10); std::cout<<ch10<<std::endl; // 11-> int to char* int tmp11 = 777; char* pch11; char ch11[20]; sprintf(ch11, "%d", tmp11); pch11 = ch11; std::cout<<pch11<<std::endl; // 12--> double to char[] double tmp12 = 8.888; char arr12[20]; sprintf(arr12, "%f", tmp12); std::cout<<arr12<<std::endl; // 13--> char* to string char* pch13 = "hello, world"; std::string str13; str13 = std::string(pch13); std::cout<<str13<<std::endl; // 14--> string to char[] std::string str14 = "dog, cat"; char arr14[255]; strncpy(arr14, str14.c_str(), sizeof(arr14)); arr14[sizeof(arr14) - 1] = 0; std::cout<<arr14<<std::endl; // 15--> string to const char* std::string str15 = "ha ha"; const char* pch15; pch15 = str15.c_str(); std::cout<<pch15<<std::endl; // 16--> float to int float ftmp16 = 99.99; int tmp16; tmp16 = static_cast<int>(ftmp16);// static_cast<int>(ftmp16 + 0.5) std::cout<<tmp16<<std::endl;  return 0;}

原文地址:http://www.linuxidc.com/Linux/2015-11/124918.htm

0 0