我一直在寻找解决方案而且找不到任何解决方案,我一直试图制作一个用户输入大小的字符串,还有什么方法可以去关于这样做? (我试图消除char数组中的空值)。
编辑:我为丢失的信息道歉,编译器是gcc -std = c99,操作系统是Ubuntu。
这是主要程序的一部分,我专注于+标题(未完全完成),我试图创建一个与用户输入长度相同的字符串,并且包含相同的值。
编译器目前还没有识别myalloc和getline
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main() {
char *string;
int selection, bytes_read, nbytes = 255;
unsigned char key, letter;
do {
...
printf("Enter a sentence:\n");
string = (char *) myalloc(nbytes + 1);
bytes_read = getline(&string, &nbytes, stdin);
...
}while(..);
}
答案 0 :(得分:0)
将以下内容另存为 main.c
:
#define _POSIX_C_SOURCE 200809L
#include <stddef.h>
#include <stdio.h>
#include <stdlib.h>
int
main()
{
size_t n = 0;
char * line = NULL;
ssize_t count;
printf("Enter a sentence: ");
count = getline(&line, &n, stdin);
if (count < 0)
{
perror("getline");
return EXIT_FAILURE;
}
/* If it bothers you: get rid of the terminating '\n', if any. */
if (line[count - 1] == '\n')
line[count - 1] = '\0';
printf("Your input was: '%s'\n", line);
free(line);
return EXIT_SUCCESS;
}
然后,在终端:
$ gcc -o main main.c
$ ./main
Enter a sentence: the banana is yellow
Your input was: 'the banana is yellow'
还有一个更广泛的示例,即使用man page中包含的getline
。