如何将日期字符串更改为其他日期字符串

时间:2014-10-17 13:29:32

标签: c

我必须修改.c程序,但我对c编程的知识非常有限。 我怎么能改变 输入字符串' 3.10.2014' 输出字符串' 2014-10-03' ?

char *in = '3.10.2014'
char *out = something(*in)

谢谢

1 个答案:

答案 0 :(得分:4)

首先将通话更改为:

char date[] = "3.10.2014";
change_date(date);

这会使date成为一个你可以实际修改的数组,而不是你不能修改的字符串文字。

然后使用例如change_date()撰写sscanf()sprintf()

void change_date(char *s)
{
  int y, m, d;

  if(sscanf(s, "%d.%d.%d", &d, &m, &y) == 3)
  {
    sprintf(s, "%d-%d-%d", y, m, d);
  }
}

以上使用%04d格式化年份,希望在可用缓冲区空间太小的情况下不太可能中断。

最好还接受size_t s_max参数并使用snprintf(),并具有返回值。我选择了简洁。