C语言函数如何返回字符串?

我们先来看下我写的这个返回值为void的函数
void formatTime(time_t t) {
char str[30];
time_t tt = t;
TIME * ptr = localtime(&tt);
strftime(str, 30, "%Y/%m/%d %X", ptr);
printf("%s", str);
}

但是我现在不想在此函数中直接打印出这个时间格式串
我想让此函数返回那个str的时间格式串
我应该如何改动呢?

如果回答的好,并且所提的解决方案切实可行 再进行追加10分

再次先行谢过.

1 char*formatTime(time_t t) ,函数类型定义为指向字符串的指针,你返回str就行
2 如果你在主函数中定义str的话,再把他传给被调用函数,这样被调用函数改变了str的值后,在主函数那边即可输出,被调用函数不需要返回任何值更省事
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-05-12
可在主函数里面定义一个字符数组,把该字符数组的指针传递到这个函数,然后通过指针进行操作就行了
在c++里面可以直接用string类类型,在c里面只能用上面这种方式了
第2个回答  2012-05-12
返回字符串的引用或者是指针都是可以的。或者可在主函数里面定义一个字符数组,把该字符数组的指针传递到这个函数,然后通过指针进行操作就行了
第3个回答  2012-05-12
char *formatTime(time_t t,char *s) {
TIME * ptr = localtime(&t);
strcpy(s,strftime(str, 30, "%Y/%m/%d %X", ptr));
return s;
}

int main() {
char s[30]; // s的长度要足够长
printf("%s\n",s);
return 0;
}本回答被提问者采纳
相似回答