C++intconst char*char*charstring之间的转换
Posted 料峭
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C++intconst char*char*charstring之间的转换相关的知识,希望对你有一定的参考价值。
#include "stdafx.h" #include<string> #include<vector> #include<iostream> #include<sstream> #include<stdio.h> #include<stdlib.h> using namespace std; //sstream string int2str1(int n){ ostringstream oss; oss << n; string s = oss.str(); return s; } //sprintf string int2str2(int n){ char temp[64]; sprintf_s(temp, "%d", n); string str = temp; return str; } //sstream int str2int1(string s){ int n; istringstream iss; iss.clear(); iss.str(s); iss >> n; return n; } //sscanf int str2int2(string s){ int n; sscanf_s(s.c_str(), "%d", &n); //scanf前面加s用于把str输入到n中 return n; } //stoi int str2int3(string s, int base){ // base:进制 int n = stoi(s, nullptr, base); return n; } //c_str const char* str2Cchar(string s){ //const char* ss = s.c_str(); //出错,因为s会被析构,ss指向垃圾内容 char c[20]; strcpy_s(c, s.c_str()); return c; } //atoi int Cchar2int(const char* s){ //char buffer[100]; int n = atoi(s); return n; } char* int2char(int n){ char buffer[100]; _itoa_s(n, buffer, 10); return buffer; } int _tmain(int argc, _TCHAR* argv[]) { //cout << str2int1("1234") << endl; //cout << str2int2("1234") << endl; //cout << int2str1(1234) << endl; //cout << int2str1(1234) << endl; //string s1 = "123455"; //const char* ss1 = str2Cchar(s1); //char s2[] = "123455"; //const char* ss2 = s2; //cout << Cchar2int(ss2) << endl; char* c = int2char(1234); cout << *c << endl; return 0; }
以上是关于C++intconst char*char*charstring之间的转换的主要内容,如果未能解决你的问题,请参考以下文章
在 C 中,如何修复此警告:格式“%s”需要“char *”类型的参数,但参数 3 的类型为“char (*)[100]