C51 數字和字串互相轉化
阿新 • • 發佈:2019-01-03
一、atoi()——把字串轉換成整型數
考點:字串轉換為數字時,對相關ASCII碼的理解。 C實現:
#include <ctype.h>
#include <stdio.h>
int atoi (char s[]);
int main(void )
{
char s[100];
gets(s);
printf("integer=%d\n",atoi(s));
return 0;
}
int atoi (char s[])
{
int i,n,sign;
for(i=0;isspace(s[i]);i++)//跳過空白符;
sign=(s[i]=='-')?-1:1;
if(s[i]=='+'||s[i]==' -')//跳過符號
i++;
for(n=0;isdigit(s[i]);i++)
n=10*n+(s[i]-'0');
return sign *n;
}
C++實現:
1 #include <iostream>
2 using namespace std;
3
4 int str2int(const char *str)
5 {
6 int temp = 0;
7 const char *ptr = str; //ptr儲存str字串開頭
8
9 if (*str == '-' || *str == '+') //如果第一個字元是正負號,
10 { //則移到下一個字元
11 str++;
12 }
13 while(*str != 0)
14 {
15 if ((*str < '0') || (*str > '9')) //如果當前字元不是數字
16 { //則退出迴圈
17 break;
18 }
19 temp = temp * 10 + (*str - '0'); //如果當前字元是數字則計算數值
20 str++; //移到下一個字元
21 }
22 if (*ptr == '-') //如果字串是以“-”開頭,則轉換成其相反數
23 {
24 temp = -temp;
25 }
26
27 return temp;
28 }
29
30 int main()
31 {
32 int n = 0;
33 char p[10] = "";
34
35 cin.getline(p, 20); //從終端獲取一個字串
36 n = str2int(p); //把字串轉換成整型數
37
38 cout << n << endl;
39
40 return 0;
41 }
二、itoa()——把一整數轉換為字串