我必须修改.c程序,但我对c编程的知识非常有限。 我怎么能改变 输入字符串' 3.10.2014' 输出字符串' 2014-10-03' ?
char *in = '3.10.2014'
char *out = something(*in)
谢谢
答案 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()
,并具有返回值。我选择了简洁。