2014-10-17 118 views

回答

4

首先更改呼叫:

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

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

然后用change_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(),并有返回值。我选择了简洁。

+0

谢谢! :)) – Muflix 2014-10-20 09:16:30

相关问题