阅读量:0
在C语言中,可以使用动态内存分配函数malloc()
和realloc()
来输入未知长度的字符串。首先,可以使用malloc()
函数来分配一个初始大小的内存空间来存储字符串,然后使用realloc()
函数来根据需要调整内存空间的大小。
以下是一个示例代码:
#include <stdio.h> #include <stdlib.h> #include <string.h> int main() { char *input = (char *)malloc(100); // 初始分配100个字节的内存空间 char *temp; int len = 0; if (input == NULL) { printf("内存分配失败\n"); return 1; } printf("请输入字符串:\n"); while(1) { if (len >= 100) { // 调整内存空间大小 temp = (char *)realloc(input, len + 10); if (temp == NULL) { printf("内存分配失败\n"); free(input); return 1; } else { input = temp; } } // 逐字符读取输入 input[len] = getchar(); if (input[len] == '\n') { input[len] = '\0'; break; } len++; } printf("输入的字符串为:%s\n", input); free(input); return 0; }
在这个示例代码中,首先使用malloc()
函数分配了一个初始大小为100字节的内存空间来存储字符串。然后在一个循环中逐字符读取输入的字符串,并根据需要使用realloc()
函数调整内存空间的大小。当输入结束时,打印出输入的字符串并释放内存空间。