c语言怎么输入未知长度的字符串

avatar
作者
筋斗云
阅读量: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()函数调整内存空间的大小。当输入结束时,打印出输入的字符串并释放内存空间。

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!