c语⾔:sprintf()数字转字符赋值给数组
//sprintf()
//sprintf 最常见的应⽤之⼀是把整数打印到字符串中,所以,spritnf 在⼤多数场合可以替代itoa
/*
缓冲区溢出
第⼀个参数的长度太短了,没的说,给个⼤点的地⽅吧。当然也可能是后⾯的参数的问题,建议变参对应⼀定要细⼼,
⽽打印字符串时,尽量使⽤”%.ns”的形式指定最⼤字符数。
忘记了第⼀个参数
转业安置低级得不能再低级问题,⽤printf ⽤得太惯了。
变参对应出问题守护妈妈
通常是忘记了提供对应某个格式符的变参,导致以后的参数统统错位,检查检查吧。尤其是对应”*”的那些参数,都提供了吗?不要把⼀个整数对应⼀个”%s”。*/
#include <stdio.h>
int main()
{
char s[10];
sprintf(s, "%d", 123); //产⽣"123",赋值给数组
printf("%s\n",s);
sprintf(s, "%8d%8d", 123, 4567); //产⽣:" 123 4567" ,赋值给数组
北京印象printf("%s\n",s);
sprintf(s, "%-8d%8d", 123, 4567); //产⽣:"123 4567"
printf("%s\n",s);冻鲍鱼>范宜军
sprintf(s, "%8x", 4567); //⼩写16 进制,宽度占8 个位置,右对齐形容时间长的成语
printf("%s\n",s);
sprintf(s, "%-8X", 4568); //⼤写16 进制,宽度占8 个位置,左对齐
printf("%s\n",s);
无所不能的意思sprintf(s, "%08X", 4567); //产⽣:"000011D7"
printf("%s\n",s);
sprintf(s, "%08x", 4567); //产⽣:"000011D7"
printf("%s\n",s);
蟹黄包的做法
getchar();
}
结果如下: