【printf】sprintf字符串转数值、数值转字符,拼接字符,函数详细解释 Printf 打印数值...

本文介绍了C语言中`sprintf`函数的使用,包括数值转换成字符串、字符串转换成数值,以及如何进行数字字符的拼接。通过`sprintf`可以实现数值的`unsigned int`、`signed int`、`unsigned long`和`signed long`等类型的字符串格式化输出。同时,文章还提到了打印十六进制数字的注意事项,以及`sprintf`在连接字符串和打印地址方面的应用。
摘要由CSDN通过智能技术生成

1、数值转成字符:

sprintf个函数,如: sprintf(s, "%d", 123); //产生"123"

2、字符串转成数值: 

while(*BandRate='\0')
  {num=num*10+(*BandRate-'0');
  BandRate++;
  }

 char test_char[7]={0};
  unsigned int cc=60000;         //虽然都定义unsigned int

  sprintf(test_char,"%u", cc);   //输出的unsigned int的数字字符

  sprintf(test_char,"%lu", cc);   //输出的unsigned long的数字字符

  sprintf(test_char,"%d", cc);   //输出的signed int的数字 字符

 sprintf(test_char,"%ld", cc);   //输出的signed long的数字 字符

unsigned int un =3000000000;/*int为32位*/

short end = 200;

long big = 65537;

long long verybig = 12345678908642;

printf("un =%u and not %d \n",un,un);

printf("end =%hd and %d\n",end,end);

printf("big = %ld and %hd\n",big,big);

printf("verybig = %lld and %ld\n",verybig,verybig) 

unsigned int ui = -1;

unsigned long ul = -1;

unsigned long long ull = -1;

size_t st = -1;

printf("ui=%u,ul=%lu,ull=%llu,st=%zu\n", ui, ul, ull, st);

位数比较

由于数据的长度和平台相关,所以基于 64 位系统比较。

  Windows Linux
unsigned int 32 bits/4294967295 32 bits
unsigned long 32 bits 64 bits/18446744073709551615
unsigned long long 64 bits 64 bits
size_t 32 bits 64 bits

可以看到,size_t 和 unsigned long 比较同步。另外 ssize_t 和 size_t 的关系就像 int 和 unsigned int 的关系。(参考1参考2)

格式控制(printf)

length d i u o x X f F e E g G a A c s p n
(none) int unsigned int double int char* void* int*
hh signed char unsigned char         signed char*
h short int unsigned short int         short int*
l long int unsigned long int   wint_t wchar_t*   long int*
ll long long int unsigned long long int         long long int*
j intmax_t uintmax_t         intmax_t*
z size_t size_t         size_t*
t ptrdiff_t ptrdiff_t         ptrdiff_t*
L     long double        

#include <cstdio>

int main()

{

unsigned int ui = -1;

unsigned long ul = -1;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值