2. (程序题) 【描述】 输入2个字符串S1和S2,要求删除字符串S1中出现的所有子串S2,即结果字符串中不能包含S2。函数原型如下: void delete_substr(const char *str, const char *substr, char *resultstr) 【输入】 输入在2行中分别给出不超过80个字符长度的、以回车结束的2个非空字符串,对应S1和S2。 【输出】 在一行中输出删除字符串S1中出现的所有子串S2后的结果字符串。 【输入示例】 Tomcat is a male ccatat cat 【输出示例】 Tom is a maleC语言
时间: 2023-12-30 19:21:58 浏览: 57
以下是 C 语言的实现代码:
```c
#include <stdio.h>
#include <string.h>
void delete_substr(const char *str, const char *substr, char *resultstr) {
int len1 = strlen(str);
int len2 = strlen(substr);
int i, j, k;
for (i = j = 0; i < len1; i++) {
if (strncmp(&str[i], substr, len2) == 0) {
i += len2 - 1;
} else {
resultstr[j++] = str[i];
}
}
resultstr[j] = '\0';
}
int main() {
char str[81], substr[81], resultstr[81];
fgets(str, sizeof(str), stdin);
fgets(substr, sizeof(substr), stdin);
str[strcspn(str, "\r\n")] = '\0';
substr[strcspn(substr, "\r\n")] = '\0';
delete_substr(str, substr, resultstr);
printf("%s", resultstr);
return 0;
}
```
输入的字符串通过 `fgets()` 函数读入,读入后去掉回车符。在 `delete_substr()` 函数中,遍历字符串 `str`,如果当前位置是字符串 `substr` 的开头,则将当前位置后移 `len2` 个字符;否则将该字符保存到结果字符串 `resultstr` 中。最后在结果字符串结尾处添加 `'\0'`。最后输出结果字符串。注意读入字符串时要注意去掉回车符。
相关推荐
![application/msword](https://img-home.csdnimg.cn/images/20210720083327.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)