gpt4 book ai didi

c - 如何读取长度未知的输入字符串?

转载 作者:行者123 更新时间:2023-11-30 16:40:09 27 4
gpt4 key购买 nike

如果我不知道这个词有多长,我就不能写 char m[6];,
这个词的长度可能有十到二十长。如何使用 scanf 从键盘获取输入?

#include <stdio.h>
int main(void)
{
char m[6];
printf("please input a string with length=5\n");
scanf("%s",&m);
printf("this is the string: %s\n", m);
return 0;
}

请输入长度=5的字符串
输入:你好
这是字符串:你好

最佳答案

动态保护区域时进入

EG

#include <stdio.h>
#include <stdlib.h>

char *inputString(FILE* fp, size_t size){
//The size is extended by the input with the value of the provisional
char *str;
int ch;
size_t len = 0;
str = realloc(NULL, sizeof(*str)*size);//size is start size
if(!str)return str;
while(EOF!=(ch=fgetc(fp)) && ch != '\n'){
str[len++]=ch;
if(len==size){
str = realloc(str, sizeof(*str)*(size+=16));
if(!str)return str;
}
}
str[len++]='\0';

return realloc(str, sizeof(*str)*len);
}

int main(void){
char *m;

printf("input string : ");
m = inputString(stdin, 10);
printf("%s\n", m);

free(m);
return 0;
}

关于c - 如何读取长度未知的输入字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46786655/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com