C语言按格式输出的问题

来源:百度知道 编辑:UC知道 时间:2024/05/24 16:31:23
从外部读入一个长度不超过4位的字符串,存入字符数组STR中,比如:STR=ABC。
现在我需要一个转换,能帮我将该字符数组进行一个格式化输出到字符数组TEMP中,要求:输出的字符数组必须是4位,不足位用0补齐,例如STR=ABC,则TEMP=0ABC,如果STR=12,则TEMP=0012,如果STR=F,则TEMP=000F。…………
希望高手们帮我解决下,最好是能象sprintf那样一句话就能转换出来的
你完全没明白我的核心意思,这个不是用简单IF能解决的,因为我是要做通用函数,现在举例给的是4位格式化,以后还有6位、8位、10位……2N位。如果要用IF来解决那要写多少IF?
最好是象sprintf(TEMP,"%04d",STR)一样,但是我这里STR是字符数组,上面的只能处理整型STR。
说了这么多不知道你是否明白

看来你还是没明白我的意思,我的要求是用在一个函数中,不是是要写成标准库用的,不过问题我已经自己解决了,看你写了那么多,就送给你吧

这个还不简单啊,
我给你个大概
#include<stdio.h>
#include<string.h>
int main()
{
int i,len;
char STR[5];
gets(STR);
len=strlen(STR);
if(len<4)
{
for(i=0;i<4-len;i++)printf("0");
}
puts(STR);
return 0;
}
这个希望你输入不会大于4个字符。。不然会有不可预料的错误,蛙哈哈
希望这个对你有帮助

输出的时候加个 if限制就可以了