使用 gets()函数输入一个任意字符的字符串,一个字符串由若干个部分组成,每部分之 间用一个或多个空格隔开,要求提取每部分的字符存到一个二维字符数组内,并且输出 二维数组中的数据。c语言
时间: 2024-10-15 07:28:01 浏览: 18
C语言 不使用strcat函数实现连接两个字符串功能代码
在C语言中,使用`gets()`函数读取用户输入并分割字符串是一个常见的操作。不过需要注意的是,`gets()`函数由于存在安全风险(缓冲区溢出),在现代C标准中已被废弃,推荐使用更安全的`fgets()`代替。如果你坚持使用`gets()`,以下是基本思路:
```c
#include <stdio.h>
#include <string.h>
#define ROWS 5 // 假设最多有5行
#define COLS 10 // 每行最大字符数
// 创建二维字符数组
char array[ROWS][COLS];
int main() {
char input[100]; // 用于存储完整的输入
int row = 0;
printf("请输入字符串 (按回车结束): ");
fgets(input, sizeof(input), stdin); // fgets防止缓冲区溢出
// 分割字符串并保存至二维数组
char* token = strtok(input, " "); // 以空格分隔
while (token != NULL) {
if (row < ROWS) { // 防止数组溢出
strcpy(array[row], token);
row++;
} else {
break; // 如果已经到达行数限制,不再添加
}
token = strtok(NULL, " "); // 继续下一个单词
}
// 输出二维数组的内容
for (int i = 0; i < row; i++) {
printf("%s\n", array[i]);
}
return 0;
}
阅读全文