假设我的生日在{/ p>的某个文件中写为04251993
我想将其格式化为04/25/1993
我假设我应该创建一个空字符串,或者将旧字符串修改为新字符串。
我不太清楚如何做到这一点:在编写函数时需要一些帮助。 我是这样开始的。
前两个角色需要是一个带有斜线的月份,另外两个带有斜线的角色,然后是最后4个角色来推出年份。
void timef(char str[]){
printf("%c, str[0]) ?
答案 0 :(得分:0)
在堆上创建一个足够大的字符数组。然后通过 字符并插入斜杠。使用fput将其放在文件中。重复。
答案 1 :(得分:0)
您可以编写一般函数或仅在集合范围内执行操作的函数。对于这个答案,让我们只研究后者。这意味着,我假设你的字符串总是9个字符的固定大小(包括' \ 0'),数据的打包是" mm / dd / yyyy" 。 从那里,您只需要确定新字符串需要多大,以及原始字符串+ 2字符,因此您需要一个包含11个字符的新数组。
char newDate[11] = "";
然后,您需要循环遍历原始字符串数组的内容,并将每个字符放入新数组中,以及随时添加斜杠。所以像这样:
int main()
{
int newSize = 11;
char oldDate[9] = "04231993";
char newDate[11] = "";
for(int i = 0, j = 0; i < newSize && j < oldSize; i++, j++){
if(i == 2){
newDate[i] = '/';
i++;
}
if(i == 5){
newDate[i] = '/';
i++;
}
newDate[i] = oldDate[j];
}
printf("%s", newDate);
}
这真的很简单,只是为了说明基本概念。我建议您使用自己的,更强大的版本。
答案 2 :(得分:0)
使用"%.*s"
扫描原始字符串,然后写入新字符串
const char *src = "04251993";
char dest[11];
if (strlen(src) >= 8) {
sprintf(dest, "%.2s/%.2s/%.4s", src, src + 2, src + 4);
}