1.字符型和整型的关系:
字符型和整型在c中大部分情况下都是可以通用的。
因为字符型在电脑中的存储就是其ASCII码,关键是看如何输出。
如:
‘0’ 在电脑中存储的数值为48;
例如: char a=0;如果以%c输出,输出结果就是0;
如果以%d输出,输出结果就是48;
同理:int a=48;如果以%c输出,输出结果就是0;
如果以%d输出,输出结果就是48
2.字符型和整型的运算:
两者进行运算以ASCLL进行运算,并且以数字的形式存储在电脑中,也是看如何输出。
using namespace std;
#include <bits/stdc++.h>
int main()
{
printf("a是int型:\n");
int a=48;
printf("a=%d(int)\n",a);
printf("a=%c(char)\n\n",a);
printf("b是char型:\n");
char b='0';
printf("b=%d(int)\n",b);
printf("b=%c(char)\n\n",b);
printf("c是字符型:\n");
int c='1';//1的ASCLL是49
printf("3+c=%d(int)\n",3+c);
printf("3+c=%c(char)\n",3+c);
return 0;
}
运行结果:
3.把字符串转换为整型
将字符串字面上的数值转换为真正的整型,需要用 字符-‘0’ 来表示实际的整型值。
字符-‘0’是ASCLL的运算,转换为真正意义上的数字。
char s[]="123";
int s0=0;
for(int i=0;i<strlen(s);i++)
{
s0*=10;//放前面比较好
s0=s0+(s[i]-'0');
}
printf("%d",s0);
运行:
4.c提供封装好的函数atoi:
如:atoi(“123”)=123;
(1)其声明为:
int atoi(char *str);
(2)工作过程:
函数会扫描参数 str字符串,会跳过前面的空白字符(例如空格,tab缩进)等。如果 str不能转换成 int 或者 str为空字符串,那么将返回 0 [1] ;
(3)特别注意,该函数要求被转换的字符串是按十进制数理解的。atoi输入的字符串对应数字存在大小限制(与int类型大小有关),若其过大可能报错-1
char s[]="123";
printf("atoi=%d\n",atoi(s));
printf("%d",atoi("123"));
今天的分享就到这里啦!