1 /*
2 功能:输入不固定长度的字符串
3 核心:最大长度、已用长度、步进长度,malloc()/realloc()/getc();
4 */
5 #include <stdio.h>
6 #include <stdlib.h>
7 #include <string.h>
8 #define STRLEN 20 //每次分配的长度
9 int main() {
10 int strSize = STRLEN;//字符串能存储的最大长度
11 int strLength = 0; //字符串已用的长度
12 char input = NULL; //接收输入的字符
13 char *arr = (char*)malloc(sizeof(char)*STRLEN);
14 while((input=getc(stdin))!='\n') {
15 arr[strLength++] = input;
16 if(strLength==STRLEN) { //如果字符串已用长度等于分配的总长度-1时
17 strSize+=STRLEN; //更新数组能存储的最大长度
18 arr =(char*)realloc(arr,strSize);
19 }
20 }
21 arr[strLength] = '\0';
22 printf("%d,%s\n",strlen(arr),arr);
23 }
c中输入不固定长度的字符串
最新推荐文章于 2024-05-27 17:58:16 发布