前言
最近做到题目涉及数据类型的转换,查了很多资料,发现博客上的文章在此方面不全面,特别是在整型转成字符型上提供的方法不太好(指比较复杂),因此想做个总结。此方法主要涉及atoi,itoa和sprintf函数。
头文件
#include<stdio.h>
#include<stdlib.h>
整型转字符型
主要提供2种方法。
方法1:利用+‘0’将单个数字转字符
代码演示
#include<stdio.h>
int i;
int main()
{
int a=1023034;char b[20];
int c=a;
while(a!=0)//求出数字位数
{
a/=10;i++;
}
while(i--)//用+'0'把0~9的数字转成对应的字符
{
b[i]=c%10+'0';
c/=10;
}
printf("%s",b);
}
效果
方法2:利用itoa函数
itoa用法
char*iota(int a,char*s,int system)
a表示需要转换的数
s表示接收的字符串
system代表a的进制
返回值是转化后的字符串的指针,其可有可无
代码演示
#include<stdio.h>
#include<stdlib.h>
int main()
{
int i=23892010;char a[100] ;
itoa(i, a,10);
printf("%s", a);
}
效果
方法3:利用sprintf函数
sprintf用法
int sprintf(char*s," ",int a)
s表示接收的字符串
a表示需要转化的数字
返回值是写入的字符个数,可有可无
代码演示
#include<stdio.h>
int main(){
int a=1324828;
char s[100];
sprintf(s,"%d",a);
printf("%s",s);
}
字符型转整型
方法1:利用-‘0’直接转换
代码演示
#include<stdio.h>
#include<stdlib.h>
int main()
{
int i=0,b=0;char a[100]={"238566010"};
while(a[i]!='\0'){
b=b*10+a[i]-'0';
i++;
}
printf("%d", b);
}
效果
方法2:利用atoi函数
atoi用法
atoi能将字符串转换成int类型
int atoi(char*s)
s表示需要转化的字符串
返回值为转换后的int类型文章来源:https://www.toymoban.com/news/detail-554008.html
代码演示
#include<stdio.h>
#include<stdlib.h>
int main()
{
char a[10]="223932";
int b=atoi(a);
printf("%d",b);
}
效果
结语
有这么多种方法,相信你一定更加深入地掌握了这一类的转换!如果有所帮助,不妨给个三连!谢谢!文章来源地址https://www.toymoban.com/news/detail-554008.html
到了这里,关于C语言整型转字符型和字符型转整型的简便且有效的方法(对于自然数)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!