首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

字符串格式化解决方案

2012-03-15 
字符串格式化怎么快速将下面的字符串格式化22222222#0722007080300000020070803235900格式化后22222222,#0

字符串格式化
怎么快速将下面的字符串格式化
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;
}


汗。。。。。。。。

热点排行