用C语言编写一个输入两个字符串,判断短字符串中的所有字符是否在长字符串中全部出现的程序。
时间: 2024-11-15 08:28:24 浏览: 33
在C语言中,你可以使用嵌套循环和`in_array`函数来实现这个功能。假设我们有两个字符串`str1`和`str2`,其中`str1`是较短的,我们想要检查`str1`中的每个字符是否都在`str2`中出现过。这里是一个简单的示例:
```c
#include <stdio.h>
#include <string.h>
// 检查字符是否在另一个字符串中存在
int char_in_string(char target, char *source) {
int i;
for (i = 0; source[i] != '\0'; i++) {
if (source[i] == target) {
return 1;
}
}
return 0;
}
// 判断短字符串的所有字符是否都在长字符串中出现
int all_chars_in_string(const char *short_str, const char *long_str) {
int i, j;
for (i = 0; short_str[i] != '\0'; i++) {
if (!char_in_string(short_str[i], long_str)) {
return 0; // 如果找到不在长串的字符,立即返回
}
}
return 1; // 遍历完成后,表示所有字符都存在于长字符串中
}
int main() {
char str1[50], str2[100];
printf("请输入短字符串: ");
fgets(str1, sizeof(str1), stdin);
str1[strcspn(str1, "\n")] = '\0'; // 移除fgets引入的换行符
printf("请输入长字符串: ");
fgets(str2, sizeof(str2), stdin);
str2[strcspn(str2, "\n")] = '\0';
if (all_chars_in_string(str1, str2)) {
printf("短字符串中的所有字符都在长字符串中。\n");
} else {
printf("短字符串中有字符不在长字符串中。\n");
}
return 0;
}
```
阅读全文