我对 C 很陌生,所以作为学习的一部分,我想创建一个函数,它只返回一个字符串,该字符串是输入中的下一行,不需要任何参数。
这是我到目前为止所拥有的:
#define BUFFER 256
char *str;
char *getline()
{
if (str == 0)
str = (char*)calloc(BUFFER, sizeof(char));
if (fgets(str, BUFFER, stdin) != 0)
{
size_t len = strlen(str);
if (len > 0 && str[len-1] == '\n')
str[len-1] = '\0';
return str;
}
return 0;
}
现在,这是做这种事情的最好方法吗?有没有更好的方法可以解决?如果这是最好的方法,我应该在哪里释放我分配的东西calloc
?