#include<stdio.h>
#include<string.h>
int YenCov(int,int,char *,int);
int main(void)
{
int kingaku;
int mode;
int datsize;
int rtn;
char kindat[15];
printf("金額入力==>");
scanf("%d",&kingaku);
printf("モード(1 or 2)==>");
scanf("%d",&mode);
printf("データサイズ==>");
scanf("%d",&datsize);
rtn = YenCov(kingaku,mode,kindat,datsize);
if(rtn == -1)
{
printf("モードエラー\n");
}
else if(rtn == -2)
{
printf("領域不足エラー\n");
}
else
{
printf("編集金額 = %s\n",kindat);
}
return 0;
}
int YenCov(int kin,int md,char *bp,int size)
{
char buf1[15];
char buf2[15];
int len;
int cmcnt;
int cnt;
int i,j;
cnt = 0;
if(md != 1 && md != 2)
{
return -1;
}
sprintf(buf1,"\\%d",kin);
len = strlen(buf1);
if(md == 1)
{
cmcnt = 0;
}
else
{
cmcnt = (len-2)/3;
}
if(len + cmcnt + 1 > size)
{
return -2;
}
if(md == 1)
{
strcpy(buf2,buf1);
}
else
{
buf2[len + cmcnt] = '\0';
for(i = len - 1;i > 0; i--)
{
j = i + cmcnt;
if(cnt == 3 && cmcnt != 0)
{
buf2[j] = ',';
cnt = 0;
cmcnt--;
j--;
}
buf2[j] = buf1[i];
cnt++;
}
}
strcpy(bp,buf2);
return 0;
}