结合使用fgets和malloc来创建字符串数组的方法如下:
下面是一个示例代码,演示了如何结合使用fgets和malloc来创建字符串数组:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_SIZE 100
int main() {
int numStrings;
char **stringArray;
printf("Enter the number of strings: ");
scanf("%d", &numStrings);
getchar(); // 消耗输入缓冲区中的换行符
// 动态分配指针数组的内存
stringArray = (char **)malloc(numStrings * sizeof(char *));
// 逐个读取字符串并分配内存
for (int i = 0; i < numStrings; i++) {
char buffer[MAX_SIZE];
printf("Enter string %d: ", i + 1);
fgets(buffer, sizeof(buffer), stdin);
// 去除字符串末尾的换行符
buffer[strcspn(buffer, "\n")] = '\0';
// 动态分配字符串的内存
stringArray[i] = (char *)malloc((strlen(buffer) + 1) * sizeof(char));
// 复制字符串到动态分配的内存中
strcpy(stringArray[i], buffer);
}
// 打印字符串数组
printf("String array:\n");
for (int i = 0; i < numStrings; i++) {
printf("%s\n", stringArray[i]);
}
// 释放动态分配的内存
for (int i = 0; i < numStrings; i++) {
free(stringArray[i]);
}
free(stringArray);
return 0;
}
这段代码首先通过用户输入获取字符串的数量,然后动态分配指针数组的内存。接下来,使用fgets函数逐个读取字符串,并动态分配每个字符串的内存。最后,打印字符串数组,并释放动态分配的内存。
腾讯云相关产品和产品介绍链接地址:
领取专属 10元无门槛券
手把手带您无忧上云