C语言中怎么把Int型转成字符型?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言中怎么把Int型转成字符型?相关的知识,希望对你有一定的参考价值。

要先弄清楚到底是将整型转换成字符还是一个字符串,如果把整型变量转为以该变量作为ascii码的字符,可以直接付值,当然这个数值要小于256,如果是转换成一个字符串,那就如上说讲的用sprintf或者itoa函数来实现吧 参考技术A 在int型变量前面加上强制转换(char)就可以了,举例说明吧。
int
num
=
67;
char
c;
c
=
(char)num;
不过前提是int值在0~255范围内,因为char型变量只占用一个字节内存,最大只能存储255。
参考技术B 这样就好:
int i = 97;
char ch = (char)i;
这样子ch中存的就是'a',也就是'a'对应的ascii码的值。
参考技术C 据我所知,C/C++中字符就是以int的形式存在的。“ 将一个字符常量赋值给字符变量,实际上并不是把该字符本身放到内存单元中,而是将该字符的相应ASCII码(整型数)存入。例如,字符‘a'的ASCII码是97,上例中“c5=97”即为“c5='a'”。“ 在内存中,字符数据以ASCII码存储,即以整数表示(原文这一句为黑体字),所以C++中字符数据和整型数据之间可以相互赋值,只要注意其表示的范围合理。”-----------摘自《C++程序设计教程》 钱能本回答被提问者采纳

C语言中关于字符串转整型?

char buf[] = "c1";怎么转成int型?

字符串转成整型可以使用atoi函数。

函数原型:int atoi(const char *nptr);

功能:把字符串转换成整型数。

参数nptr字符串,如果第一个非空格字符存在,是数字或者正负号则开始做类型转换,之后检测到非数字(包括结束符 \\0) 字符时停止转换,返回整型数。否则,返回零。

参考代码:

#include <stdlib.h>
#include <stdio.h> 
int main()

    int n;
    char *str = "12345";
    n = atoi(str);
    printf("%d\\n",n);
    return 0;

/*
运行结果:
12345
*/
参考技术A 字符型和整型在内存中都是以二进制形式存放的,所以二者可以通用,进行混合运算,比如'A'+1;当以%d的格式输出时为66;以%c的格式输出时为字符'B';

所以,字符型和整型是没有必要转化(主要要掌握字符型ASCII代码的范围即可,即0到256)对于运算过程没有什么区别,如果要进行字符型转整型,那也指的是输出格式的不同;但字符串转整型,这句话我就有点不明白了,即使要转,也是一个字符一个字符的进行转化。

比如:ch[]="A"; 字符ch[0]='A';ch[1]='\0';

ch[]="ABC"; 字符ch[0]='A';ch[1]='B';ch[2]='C';ch[4]='\0';

主要看你是以什么格式输出。

如果对你有所帮助,请记得采纳最佳答案,谢谢!
参考技术B 不可以 除非存数字的字符串 参考技术C 用函数可以转换,但是里面必须是一个数字,itoa函数,自己查一下。 参考技术D char *buf=(char *)malloc(2*sizeof(char));
*buf[0]='c1';
*buf[1]='\0';
//至此,buf[]和你声明的字符串一样的内容了
//增语句如下
free(buf);
buf=(int *)malloc(2*sizeof(int));
//至此,buf[]是整型数组,但为空

//想直接得到ASCII码的话,就写:
int a=buf[0];
//同样,如下也对
printf("%d",buf[0]);本回答被提问者和网友采纳

以上是关于C语言中怎么把Int型转成字符型?的主要内容,如果未能解决你的问题,请参考以下文章

C语言int型转char型并相接

C语言字符串转成INT型数组

c语言如何将数组转成字符串

C语言字符串转成INT型数组

在C语言中怎么把一个数转换成二进制然后输出

c语言怎么把UTF-8转换成Unicode