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

以下是Windows/Linux系统中常用的C/C++各种数据类型转换汇总:

#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;
}

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/fdb336a592655ba4698d9a8193909559.html