字符串格式化
怎么快速将下面的字符串格式化
22222222#0722007080300000020070803235900
格式化后
22222222,#072,2007-08-03 00:00:00,2007-08-03 23:59:00
[解决办法]
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char* argv[])
{
char *s= "22222222#0722007080300000020070803235900 ", d[80];
char tmp[20];
int t, dindex=0, sindex;
sscanf(s, "%d ", &t);
dindex += sprintf(d+dindex, "%d ", t);
sindex = dindex;
sscanf(s+sindex, "%4s ", tmp);
dindex += sprintf(d+dindex, ",%s ", tmp);
sindex += 4;
for (t=0; t <2; t++)
{
sscanf(s+sindex, "%4s ", tmp);
dindex += sprintf(d+dindex, ",%s ", tmp);
sindex += 4;
sscanf(s+sindex, "%2s ", tmp);
dindex += sprintf(d+dindex, "-%s ", tmp);
sindex += 2;
sscanf(s+sindex, "%2s ", tmp);
dindex += sprintf(d+dindex, "-%s ", tmp);
sindex += 2;
sscanf(s+sindex, "%2s ", tmp);
dindex += sprintf(d+dindex, " %s ", tmp);
sindex += 2;
sscanf(s+sindex, "%2s ", tmp);
dindex += sprintf(d+dindex, ":%s ", tmp);
sindex += 2;
sscanf(s+sindex, "%2s ", tmp);
dindex += sprintf(d+dindex, ":%s ", tmp);
sindex += 2;
}
puts(d);
return 0;
}
[解决办法]
#include <stdio.h>
int main()
{
char str[] = "22222222#0722007080300000020070803235900 ";
char str1[10];
char str2[10];
char str3[10];
char str4[10];
char str5[10];
char str6[10];
char str7[10];
char str8[10];
char str9[10];
char str10[10];
char str11[10];
char str12[10];
char str13[10];
char str14[10];
sscanf(str, "%8s%4s%4s%2s%2s%2s%2s%2s%4s%2s%2s%2s%2s%2s ", str1, str2, str3, str4,str5, str6, str7, str8,str9, str10, str11, str12,str13, str14);
printf( "%s,%s,%s-%s-%s %s:%s:%s,%s-%s-%s %s:%s:%s\n ", str1, str2, str3, str4,str5, str6, str7, str8,str9, str10, str11, str12,str13, str14);
return 0;
}
汗。。。。。。。。