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语言重要库函数解读 和模拟实现————常用字符串库函数

在 C 中,如何修复此警告:格式“%s”需要“char *”类型的参数,但参数 3 的类型为“char (*)[100]

C++ int main (int argc, char *argv[]) - argv 是 c 风格的数组吗?

如何将一个char数组转化为string

理解 char array[] 和 string

注册回调