整型转换为字符串
#include<stdio.h>
void int_to_string( char s[],int m )
{
int i=0,j,k,n;
char temp;
if( m<0 ){
s[i]='-';
m=-m;
i++;
}
while( m>0 ){
n=m%10;
m/=10;
s[i]=n+'0'; //或者 n+48 0的码值是48
i++;
}
s[i]='\0';
//因为上面的整型数是逆序转换的,所以我们需要倒序
//如果是负数就从第二个开始逆序,如果不是从第一个开始
if( s[0]=='-' ) k=1;
else k=0;
for( j=k;j<i/2;j++ ){
temp=s[j];
s[j]=s[i-j-1+k]; //负数k=j=1,k和-1抵消 正数k=j=0,i-1
s[i-j-1+k]=temp;
}
}
int main()
{
int num;
char str[10];
scanf("%d",&num);
int_to_string( str,num );
printf("%s",str);
return 0;
}
字符串转换为整型
#include<stdio.h>
int string_to_int( char s[])
{
int flag=1,i=0,n=0; //flag 1 +
char temp;
if( s[i]=='-' ){
flag=0; //flag 0 -
i++;
}
while( s[i]!='\0' ){
n=n*10+s[i]-48; //0的码值为48
i++;
}
if( flag==1 ){
return n;
}else{
return -n;
}
}
int main()
{
int n;
char str[10];
scanf("%s",str);
n=string_to_int( str );
printf("%d\n",n);
return 0;
}
如有错误,大家一定要在评论区指出!感谢!