C 中int型與string型及其他互相轉換

2021-08-26 09:29:21 字數 1650 閱讀 8361

先說字串轉int,long ,double

atof(將字串轉換成浮點型數)

atoi(將字串轉換成整型數)

atol(將字串轉換成長整型數)

strtod(將字串轉換成浮點數)

strtol(將字串轉換成長整型數)

strtoul(將字串轉換成無符號長整型數)

toascii(將整型數轉換成合法的ascii 碼字元)

toupper(將小寫字母轉換成大寫字母)

tolower(將大寫字母轉換成小寫字母)

int轉string

int n = 0;

std::stringstream ss;

std::string str;

ss<>str;

string轉int

std::string str = "123";

int n = atoi(str.c_str());

案例

#include "stdafx.h"

#include

#include

using

namespace

std;

void main()

float型與string型的轉換

建議同樣適用流的方法,只要把前面函式中int改為float就可以了。此外還有gcvt函式可以實現浮點數到字串的轉換,atof()函式則實現把字串轉換為浮點數。使用方法如下:

float num;  

string str="123.456";

num=atof(str.c_str());

double num=123.456;

string str;

char ctr[10];

gcvt(num,6,ctr);

str=ctr;

其中num預設為double型別,如果用float會產生截斷。6指的是保留的有效位數。ctr作為第三個引數預設為char陣列來儲存轉換後的數字。該函式在vs下編譯時同樣會提示該函式不提倡使用。最後一行將ctr之間轉換為str。

字元陣列轉化成string型別

char ch = "abcdefg";

string str(ch);//也可string str = ch;

或者char ch = "abcdefg";

string str;

str = ch;//在原有基礎上新增可以用str += ch;

將string型別轉換為字元陣列

char buf[10];

string str("abcdefg");

length = str.copy(buf, 9);

buf[length] = '\0';

或者char buf[10];

string str("abcdefg");

strcpy(buf, str.c_str());//strncpy(buf, str.c_str(), 10);

int轉char

int a=1;

char c=a+'0'; //c的值就是'1'的ascii碼值

C 中int型與string型互相轉換

include 使用c 標準庫的string類時 using namespace std 同上 include include include 要將string類和int型別直接轉換最好有這些包含,因為自己寫乙個轉換函式比較方便,函式定義參考如下 string getstring const int...

C 中int型與string型互相轉換

本以為這麼多年c 經驗,學個c 沒多難,現在發現錯了。c 真tm難。今天遇到int轉string絆了半天,方法很多,不知道為什麼搞那麼複雜,我只挑最簡單易懂的,管他效率不效率的。int轉string int n 0 std stringstream ss std string str ss ss s...

C 中int型與string型互相轉換

int轉string int n 0 std stringstream ss std string str ss str string轉int std string str 123 int n atoi str.c str include stdafx.h include include using...