字串整數之間的轉換

2021-10-22 06:14:56 字數 1777 閱讀 5138

在數字和字元之間轉換

一、整數轉字元

1.在後面加』0『即可,如:『1』+『0』

這樣做可行是因為字元0到字元9在ascii編碼時是連續的,字元0的ascii值是48,字元1的ascii值是49,其他數字字元依次往後排,而ascii值實際上就是char型整數,所以可以用兩個字元相加得到結果。

2.強制轉換型別。

二、字元轉整數

1.在後面減去『0』,用數字字付出減去』0』即』1』-『0』(它倆是用ascii碼相減)。

2.使用itoa.

char* itoa(int num,char* str,int radix)

else unum=(unsigned)num;//若是num為正,直接賦值給unum

//轉換部分,注意轉換後是逆序的

dowhile(unum);//直至unum為0退出迴圈

str[i]='\0';//在字串最後新增'\0'字元,c語言字串以'\0'結束。

//將順序調整過來

if(str[0]=='-') k=1;//如果是負數,符號不用調整,從符號後面開始調整

else k=0;//不是負數,全部都要調整

char temp;//臨時變數,交換兩個值時用到

for(j=k;j<=(i-1)/2;j++)//頭尾一一對稱交換,i其實就是字串的長度,索引最大值比長度少1

return str;//返回轉換後的字串

int n =

100;

char str2[10]

;

//字串比較麻煩,所以轉字串三個引數,我是這麼記得(手動滑稽)

itoa(n,str2,10); //第乙個引數為整數,第二個為字串(char*),第三個為進製

cout << str2 << endl;

三、整數轉字串

1.使用itoa。itoa原始碼如下。

2.自己寫個函式。

//整數轉為字串:通過加 '0』字元

void

myitoa

(long

long n,

char str)

;inti(

0);int j =0;

while

(n)

//此時為逆序,需要調整為正序 

//cout << temp << endl;

while(i>0)

str[j++] = temp[--i];

//cout << str << endl;

四、字串轉整數

1.使用stoi()

string s

("12345");

long

long a =

stoi

(s);

cout << a << endl;

2.自己寫個函式

//字串轉為整數,通過減』0』字元,底層用ascii碼相減

void myatoi(char str,long long& m)

m = temp; //轉換後賦值給m

}

整數和字串之間轉換

include using namespace std 思想是乙個整數加上 0 自動變成字元型,注意然後要輸出 void main temp i 0,字串結尾加0 printf temp s n temp 遇到字串結尾0結束輸出 i i 1 while i 0 str j 0 printf str ...

字串與整數之間的轉換

最近經常用到字串與整數之間的轉換,整理了一下,包含 1 檢驗是否為整數 2 字串轉為整數 3 從字串中提取數字 直接上 檢查是否為int型別,已經對空進行處理 public static boolean isint string str 把字串轉化為整數,若轉化失敗,則返回0 param str字串...

陣列與字串 整數 字串之間的轉換

sscanf函式原型為int sscanf const char str,const char format,將引數str的字串根據引數format字串來轉換並格式化資料,轉換後的結果存於對應的引數內。具體功能如下 1 根據格式從字串中提取資料。如從字串中取出整數 浮點數和字串等。2 取指定長度的字...