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行,而且我的程序里可能有不少这种操作
程序实例:
#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 变量 问题
32位和64位系统,C语言中char,short,int,long,char*,int*,int**各占多少字节