在數字和字元之間轉換
一、整數轉字元
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 取指定長度的字...