gpt4 book ai didi

C:在运行时输入文本,之前没有设置固定的数组大小

转载 作者:太空宇宙 更新时间:2023-11-04 08:19:16 24 4
gpt4 key购买 nike

我是 C 编程的新手,因此遇到了一些问题。

我的问题是我不知道如何在运行时输入特定文本并将其保存到没有固定大小的字符数组中。编译器是否可以识别文本大小,然后在运行时分配内存?

我已经实现了 ROT 13 加密功能,我希望用户插入文本。

提前感谢您的帮助。

最佳答案

这是通过使用 realloc 在您需要时获取内存的一种方法。我会使用 CHUNKSIZE 而不是 4 但我限制了它以便于测试。

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

#define CHUNKSIZE 4

int main(void){
char *text;
int maxlen = CHUNKSIZE;
int index = 0;
int ch;

text = malloc(CHUNKSIZE);
if(text == NULL)
exit(1);
printf("Enter your text:\n");

while((ch = getchar()) != EOF && ch != '\n') {
text[index++] = ch;
if (index >= maxlen) {
maxlen += CHUNKSIZE;
text = realloc(text, maxlen);
if(text == NULL)
exit(1);
}
}
text[index] = 0; // terminate

printf("You entered: %s\n", text);
free(text);
return 0;
}

程序 session :

Enter your text:
A quick brown fox jumps over the lazy dog.
You entered: A quick brown fox jumps over the lazy dog.

关于C:在运行时输入文本,之前没有设置固定的数组大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34065512/

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