自己编程实现整数转化成字符串以及字符串转化成整数

时间:2023-01-04 10:35:31

首先我们知道

  1. 数字0转换成字符’0’只需加上’0’,即整数加’0能隐性转换成对应字符。
  2. 字符’0’转换成整数0只需减去’0’,即字符减’0’能隐性转换成对应整数。

源程序

#include<iostream>
#include<stdlib.h>
#include<stdio.h>
using namespace std;
char *itoa(int value,char *string);
int atoi(char *nptr);
int main()
{
int value=12345;
char mystr[25];
itoa(value,mystr); //将整数转换成字符串
cout<<"integer= "<<value<<endl;
cout<<"string= "<<mystr<<endl;
cout<<"integer= "<<atoi(mystr)<<endl; //将字符串转换成整数
return 0;
}
char *itoa(int value,char *str)
{
char temp[25];
int i=0,j=0;
while(value)
{
temp[i]=value%10+'0'; //这里转换的字符串是逆序的,即temp="54321"
value=value/10;
i++;
}
i=i-1;
while(i>=0)
{
str[j]=temp[i];
j++;
i--;
}
str[j]='\0'; //一定要加上结尾标志
return str;
}
int atoi(char *nptr)
{
int num=0,i=0;
while(nptr[i]!='\0')
{
num=num*10+(nptr[i]-'0');
i++;
}
return num;
}

程序结果

自己编程实现整数转化成字符串以及字符串转化成整数