c语言中如何将short,int,long,float这些类型的数值转换为字符串?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c语言中如何将short,int,long,float这些类型的数值转换为字符串?相关的知识,希望对你有一定的参考价值。

可以使用sprintf函数转换。

1、对于整型,各个平台有一些函数可以专门转换,比如itoa等。

不过更通用的做法是使用sprintf函数。 

2、声明:

int sprintf(char *dst, const char *format_string, ...);

头文件为stdio.h。

3、功能:

sprintf是一个不定参数函数,根据format_string中提供的格式符,将后续参数转为字符串存储在第一个参数dst中。

4、使用示例:

short a=1;
int b=2;
long c=3;
float d=4;
char buf[100];
sprintf(buf, "%hd %d %ld %f",a,b,c,d);//按照格式,将四个变量存储在字符串中。

执行后,buf中字符串为"1 2 3 4.000000"。

格式字符串使用方法与输出函数printf相同。 

参考技术A

这些都是  整数  型的,所以把每一位拿出来放到char数组里面就好

#include<stdio.h>
#define LEN 20
int main()

int i;
int num;     //要转换的数字,以int为例
int len;     //存储该数字有几位
char temp[LEN], ans[LEN];
scanf("%d", &num);
len = 0;
while(num)      //每次取出个位数,直到变成0

int geWei = num % 10;   //个位数
int ch = geWei + '0';   //转换为char型
temp[len] = ch;
len++;
num /= 10;

for(i=0; i<len; i++)   //刚才是倒着存的,现在要倒回来
ans[i] = temp[len - i - 1];
ans[len] = 0;            //字符串最后要加0
printf("%s\\n", ans);
return 0;

参考技术B 用sprintf函数即可。例如
char s[20];
short a=35;
sprintf(s,"%d",a);就把s的值赋为“35”了。
参考技术C int i = 105:
char str[100] = 0;
sprintf(str, "%d", i);
其他类型变量的方法类似

C语言有没有个语句可以把short转换成char[]

比如
char str[2]
short a=0x1234;

如何让str[0]=0x12,str[1]=0x34;

我试了memmove,结果是str[0]=0x34,str[1]=0x12;
我想问问有没有比较简单的方法。。short还好说点,long就要写4行,而且我的程序里可能有不少这种操作

itoa函数可以,itoa 函数是一个广泛应用的,从非标准扩展到标准的C语言。它不能被移植,因为它不是标准定义下的C语言,但是,编译器通常在一个不遵循程式标准的模式下允许其通过header ,因为它是一个从逻辑对应到标准库的函数。itoa 取整数输入值,并将其转换为相应进制数字的字符串。
程序实例:

#include <stdlib.h>

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

int number = 12345;
char string[32];
itoa(number, string, 10);
printf("integer = %d string = %s\n", number, string);
return 0;

itoa() 函数有3个参数:第一个参数是要转换的数字,第二个参数是要写入转换结果的目标字符串,第三个参数是转移数字时所用的基数(进制)。在上例中,转换基数为10,就意味着以10为转换进制。10:十进制;2:二进制...
参考技术A 如果很多地方要用到就写一个内联函数实现
inline void varcpy(void* dest, const void* src, unsigned int count)

unsigned char* d = (unsigned char*)dest;
unsigned char* s = (unsigned char*)src;
for (unsigned int i=0; i<count; i++)

d[i] = s[count-1-i];

参考技术B #include "stdafx.h"

#include <WINSOCK2.H>
#pragma comment(lib, "Ws2_32.lib")
void main()

short n = htons (0x1234);
char p[2];
memcpy(p, (char*)&n, sizeof(short));
本回答被提问者和网友采纳

以上是关于c语言中如何将short,int,long,float这些类型的数值转换为字符串?的主要内容,如果未能解决你的问题,请参考以下文章

关于C语言 的__int64 的:如何输出从键盘读入的__int64 变量 问题

C语言中short与int有啥区别

32位和64位系统,C语言中char,short,int,long,char*,int*,int**各占多少字节

计算机C语言中int和short还有long有啥区别,啥时候用int,啥时候用其他的?

short型与int型的区别

C语言中int short long 的具体区别是啥?