当前位置: 技术问答>linux和unix
linux "123"转换为“000123"
来源: 互联网 发布时间:2016-05-15
本文导语: #include int main() { char j[128] = {0}; char n[128] = {0}; char i[] = "123"; char m[] = "abc"; sprintf(j, "%010s", i); printf("%sn", j);//输出0000000123 sprintf(n, "%-10s", m); printf("%s...
#include
int main()
{
char j[128] = {0};
char n[128] = {0};
char i[] = "123";
char m[] = "abc";
sprintf(j, "%010s", i);
printf("%sn", j);//输出0000000123
sprintf(n, "%-10s", m);
printf("%sn", n);//输出"abc "(后接7个空格)
return 0;
}
还有没有可以解答一下啊。。我要在linux系统下运行。。
sprintf(s,"%010d",123);在linux下跟
sprintf(s."%s10d",123);的结果是一样的,没有前面加0而是补空格。。
还有人可以帮解答吗?我明天就加分。。。
int main()
{
char j[128] = {0};
char n[128] = {0};
char i[] = "123";
char m[] = "abc";
sprintf(j, "%010s", i);
printf("%sn", j);//输出0000000123
sprintf(n, "%-10s", m);
printf("%sn", n);//输出"abc "(后接7个空格)
return 0;
}
还有没有可以解答一下啊。。我要在linux系统下运行。。
sprintf(s,"%010d",123);在linux下跟
sprintf(s."%s10d",123);的结果是一样的,没有前面加0而是补空格。。
还有人可以帮解答吗?我明天就加分。。。
|
%0补齐应该只对数字有效。
把i声明为int型,然后
sprintf(j, "%010d", i);
应该就可以了。
把i声明为int型,然后
sprintf(j, "%010d", i);
应该就可以了。
|
如1楼所说
可以再加上
char *p = j;
while(*p == ' ')
*p++ = '0';
可以再加上
char *p = j;
while(*p == ' ')
*p++ = '0';