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