c语言函数实现getline
时间: 2023-10-16 08:21:36 浏览: 51
C语言并没有标准的getline函数,但可以通过自定义函数来实现类似功能。以下是一个简单的例子:
```
#include <stdio.h>
#include <stdlib.h>
char *getline() {
char *line = NULL;
int bufsize = 0;
int i = 0;
char c;
do {
c = getchar();
if (i >= bufsize) {
bufsize += 10;
line = realloc(line, bufsize);
}
line[i++] = c;
} while(c != '\n' && c != EOF);
line[--i] = '\0'; // remove newline or EOF character
return line;
}
int main() {
char *line;
printf("Enter a line: ");
line = getline();
printf("You entered: %s\n", line);
free(line);
return 0;
}
```
这个函数读取标准输入中的一行,并将其作为字符串返回。函数中使用了动态内存分配(realloc)来根据行的长度动态调整字符串的大小。函数执行结束后,需要手动释放字符串的内存空间。