输入第一行一个字符串,第二行另一个字符串,去掉第一行里第二行出现的字符串
时间: 2024-11-14 19:13:17 浏览: 0
要实现这个功能,你可以使用C语言中的标准库函数`strtok()`和`strcmp()`。以下是一个简单的程序,它读取两行字符串,然后从第一行中删除第二行出现的所有子串:
```c
#include <stdio.h>
#include <string.h>
void remove_substrings(char *input, const char *substring) {
// 使用空格分隔输入字符串,生成子串列表
char *token = strtok(input, " ");
while (token != NULL) {
if (strcmp(token, substring) == 0) {
// 如果找到匹配的子串,跳过它
token = strtok(NULL, " ");
continue;
}
// 否则,添加到结果中(这里假设输出是原始输入字符串的副本)
printf("%s ", token);
// 进入下个子串
token = strtok(NULL, " ");
}
}
int main() {
char line1[100], line2[100];
// 从用户那里获取输入
fgets(line1, sizeof(line1), stdin);
fgets(line2, sizeof(line2), stdin);
// 删除换行符
line1[strcspn(line1, "\n")] = '\0';
line2[strcspn(line2, "\n")] = '\0';
// 去除第二行在第一行中出现的子串
remove_substrings(line1, line2);
return 0;
}
```
在这个例子中,我们假设字符串之间用空格分隔。如果字符串中没有空格或其他特定的分隔符,你需要修改`strtok()`函数的参数。
阅读全文