c语言实现:输入一行字符串,又输入一行有空格的字符串,第一行字符串每个元素分开放进数组,第二行以空格为界限放入另一个数组,对此两个数组来实现字符串匹配
时间: 2024-10-21 17:17:59 浏览: 18
C语言实现输入一个字符串后打印出该字符串中字符的所有排列
在C语言中,你可以使用`fgets`函数读取字符串,并通过`strtok`函数分割输入的第一行字符串。然后,对于第二行的字符串,你可以手动处理每个单词并将其插入到对应的数组中。这里是一个简单的示例:
```c
#include <stdio.h>
#include <string.h>
#define MAX_STRINGS 100
#define MAX_WORDS 50
// 定义两个字符数组用于存储输入的字符串
char input_line[MAX_STRINGS][MAX_WORDS];
char whitespace_str[MAX_STRINGS][MAX_WORDS];
int main() {
char first_input[256], second_input[256];
// 输入第一行字符串
printf("请输入第一行字符串(空格分隔): ");
fgets(first_input, sizeof(first_input), stdin);
first_input[strcspn(first_input, "\n")] = '\0'; // 去除换行符
// 分割并存储第一个字符串
char *token = strtok(first_input, " "); // 使用空格作为分隔符
int i = 0;
while (token != NULL) {
strcpy(input_line[i++], token);
token = strtok(NULL, " ");
}
// 输入第二行字符串
printf("请输入第二行字符串(空格分隔): ");
fgets(second_input, sizeof(second_input), stdin);
second_input[strcspn(second_input, "\n")] = '\0'; // 去除换行符
// 手动处理第二行的字符串并存储
for (size_t j = 0; j < strlen(second_input); j++) {
if (second_input[j] == ' ') {
whitespace_str[i - 1][strlen(whitespace_str[i - 1])] = '\0'; // 添加单词结束标志
i++;
} else {
whitespace_str[i - 1][strlen(whitespace_str[i - 1]) + 1] = second_input[j]; // 插入字符
}
}
whitespace_str[i][0] = '\0'; // 确保最后一个字符串也结束
// 匹配两个数组,这里只是一个基本的示例,实际应用可能需要更复杂的逻辑
for (int k = 0; k < i; k++) {
printf("输入字符串第 %d 个词: %s\n", k + 1, input_line[k]);
printf("白色空间字符串对应词: %s\n", whitespace_str[k]);
// 检查是否匹配,这里仅做简单比较
if (strcmp(input_line[k], whitespace_str[k]) == 0) {
printf("匹配成功!\n");
} else {
printf("不匹配。\n");
}
}
return 0;
}
```
阅读全文