C语言学习 | 您所在的位置:网站首页 › c字符串转换成整数字 › C语言学习 |
目录 整型→字符串 方法1:利用+‘0’将单个数字转字符 方法2:利用sprintf函数 方法3:利用itoa函数 字符串→整型 方法1:利用-‘0’直接转换 方法2:利用atoi函数 整型→字符串整形数据变成字符串,最重要的还是单个数字变成单个字符: c就是字符 '1' int a=1; char c; c=1+'0'; 方法1:利用+‘0’将单个数字转字符这里列举十进制数变成字符串的方法: 如果是其他进制方法类似:除进制取余数法 #include 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:利用sprintf函数 int sprintf(char*s," ",int a)s:表示接收的字符串 中间的“ ”,表示字符串s的进制 %d 十进制,比如十六进制 %x,八进制 %o 等,可以根据需求使用不同的格式占位符来实现。 a:表示需要转化的数字 返回值是写入的字符个数,可有可无 注意:负数需要单独处理负号!! #include int main(){ int a=1324828; char s[100]; sprintf(s,"%x",a); printf("%s",s); } 如果是负数: #include #include #include int main(){ int a=-1324828; char s[100]; int flag=0; if(a=0;i--){ s[i+1]=s[i]; } s[0]='-'; } printf("%s",s); }注意:有些C语言环境禁用itoa函数(比如pta) char*itoa(int a,char*s,int system) //int to asclla:表示需要转换的数 s:表示接收的字符串 system:代表a的进制 #include #include int main(){ int i=23892010; char a[100] ; itoa(i, a,16); printf("%s", a); }在强调一下: 数字从左向右取得到完整数字的步骤:左边每取一个数字那就把原来数字*进制+这个数数字从右往左取得到完整数字的步骤:右边每取一个数字就把这个数字乘以进制的幂次方(为第几位-1),+原来的数字#include #include 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能将字符串转换成int类型 int atoi(char*s) //ascll to ints表示需要转化的字符串 返回值为转换后的int类型 代码演示 #include #include int main() { char a[10]="223932"; int b=atoi(a); printf("%d",b); } |
CopyRight 2018-2019 实验室设备网 版权所有 |