字符转换为整数

分类:转换一下浏览量:2206发布于:2021-05-10 10:02:24

不行的,要使用库函数atoi #include <stdlib.h> #include <stdio.h> void main( void ) */ //这也是错的,它把p字符串的第一个字符1视为char强制转换成ASCII码等于49 t = atoi(

字符串是不能转换成整数的,单独一个数字字符可以转换为整数. 例如:字符'0'可以转换成整数 48 字符'1'转换成 49 . 字符'9'转换成 57 原理:C语言中的int类型和 char类型在 0--255值域范围内可以通用. 例如:int a; a=65; printf("%c",a); 输出:A 再举例:char b; b='a'; printf("%d",b); 输出:97

char c; int n; c = getchar(); n = c; printf(%d,n);/*也可以直接输出c*/ printf(%d,c); 如果要数字对应输出就这样写 char c; int n; c = getchar(); n = c-48;/*48是0的ascii码值*/ printf(%d,n);

他们这个题目是要求自己实现atoi函数功能的意思吧?按位取得字符,判断是不是数字,到不是数字的字符为止.然后按取到的字符数得到最后的整数值."1234x"->'1','2','3','4'('1' - '0') * pow(10,3) + 这样就可以了吧.

#include <stdio.h> int main() { char word[10] = "A"; //原始16进制字符串 char input[100]; //10进制字符串 int num; //读入的整数 sscanf(word, "%x", &num); //识别16进制 sprintf(input, "%d", num); //转成10进制字符串 printf("%s\n", input); return 0; }

整数指的是int,long等,字符串是string.比如int a = 1;和string str = “1”;虽然你最后输出在屏幕上是一样的,都是1,但是在内存中的存储的asc2号码并不一样.要想转换的话,其实也简单, 就是当前字符减去“ '0' ”就行了

用数字字付出减去'0'即'1'-'0'(它俩是用ASCII码相减的即49-48=1)\0是字符串结束符号,两码事详情可以去翻书后面的附录ASCII码表,就知道为什么了

针对字符0-9的,0-9的ascii码值为0x30,0x31,0x32 0x33 0x39,因此与0xf按位与后只保留个位上的书即0x0,0x1,0x90x30 & 0xf = 00100111 & 00001111 = 0x00000111 = 0x07

#include<stdlib.h>#include <string.h>#include <stdio.h> int main(){ char b[10];//里面是一个十六进制数 for(i=2;i<strlen(a);i++) {b[i-2]=a[i];} printf("%d",atoi(b)); return 0;}

str是指字符串指针*str就是指针所指的字符*str|0x20的作用是把字母转换成小写的.你看一下ascii表,就清楚了.例如大写字母A的ascii码是65,转换成二进制是01000001 而小写字母a的ascii码是97,转换成二进制是01100001 0x20转换成二进制就是00100000 通过或操作把第6位转换成1,也就变成了小写字母了~ 如果用下面这句,如果输入的是大写字母,转换就会出现问题了

猜你喜欢

友情链接