用fgets输入一个四个元素字符串型数组,并输出
时间: 2023-08-04 20:17:09 浏览: 51
可以使用以下代码:
```c
#include <stdio.h>
#include <string.h>
#define MAX_LEN 5 // 字符串数组最大长度(包括字符串结束符 '\0')
int main() {
char str_arr[4][MAX_LEN]; // 定义一个四个元素的字符串数组
int i;
// 依次读入四个字符串并存储到字符串数组中
for (i = 0; i < 4; i++) {
printf("请输入第%d个字符串:", i+1);
fgets(str_arr[i], MAX_LEN, stdin);
// 去掉读入字符串的换行符(如果有的话)
if (strchr(str_arr[i], '\n') != NULL) {
*(strchr(str_arr[i], '\n')) = '\0';
}
}
// 输出字符串数组中的所有字符串
printf("输入的四个字符串为:\n");
for (i = 0; i < 4; i++) {
printf("%s\n", str_arr[i]);
}
return 0;
}
```
运行程序后,输入四个字符串,程序会将它们存储到字符串数组中并输出。注意,由于字符串数组中每个字符串都需要占用一个字符存储字符串结束符 '\0',因此 MAX_LEN 应大于等于 5。
相关问题
在C语言中,如何以每行四个输入多行字符串
在C语言中,可以使用循环语句和fgets函数来实现每行输入多个字符串,例如下面的代码:
```
#include <stdio.h>
#include <string.h>
#define MAX_LEN 100 // 字符串最大长度
#define MAX_LINES 10 // 最多输入行数
int main() {
char lines[MAX_LINES][MAX_LEN]; // 存储输入的多个字符串
int count = 0; // 统计已输入的字符串数量
printf("请输入多个字符串,每行输入四个,以空行结束:\n");
while (count < MAX_LINES) {
for (int i = 0; i < 4; i++) {
if (fgets(lines[count], MAX_LEN, stdin) == NULL) {
break; // 如果输入结束或出错,跳出循环
}
lines[count][strcspn(lines[count], "\n")] = '\0'; // 去除换行符
count++;
}
if (lines[count-1][0] == '\0') {
break; // 如果输入空行,跳出循环
}
}
printf("您输入的字符串为:\n");
for (int i = 0; i < count; i++) {
printf("%s\n", lines[i]);
}
return 0;
}
```
在上面的代码中,我们先定义了一个二维字符数组`lines`用于存储输入的多个字符串,同时定义了常量`MAX_LEN`表示字符串的最大长度,`MAX_LINES`表示最多输入的行数。然后使用循环语句和fgets函数逐行输入字符串,并将其存储到`lines`数组中。当输入空行或达到最大行数时,跳出循环。最后输出输入的多个字符串。
在C语言中,如何以每行四个输入多行字符串,以#结束输入
可以使用循环和fgets函数来实现以每行四个输入多行字符串,以#结束输入的功能。具体代码实现如下:
```c
#include <stdio.h>
#include <string.h>
#define MAX_LINES 100 // 最大行数
#define MAX_LENGTH 100 // 每行最大长度
int main() {
char lines[MAX_LINES][MAX_LENGTH]; // 定义一个二维字符数组存储多行字符串
int i = 0, count = 0;
printf("请输入多行字符串,每行四个,以#结束输入:\n");
while (i < MAX_LINES) {
fgets(lines[i], MAX_LENGTH, stdin); // 读取一行字符串
if (lines[i][0] == '#') { // 如果输入#,表示输入结束
break;
}
count++; // 统计输入的行数
if (count % 4 == 0) { // 如果已经输入了四行,输出一次
for (int j = i - 3; j <= i; j++) {
printf("%s", lines[j]); // 输出四行字符串
}
}
i++;
}
return 0;
}
```
以上代码会在输入了四行字符串后,输出这四行字符串,并继续等待输入下一组四行字符串,直到输入了以#为开头的行表示输入结束。