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(); }
结果如下: