输入两个字符串A,B,要求使用指针完成,删除A中遇到的所有B字符串中的字符,并输出最后删除后的A结果
时间: 2024-03-01 17:54:06 浏览: 76
好的,我明白了你的问题。以下是实现该功能的C++代码:
```c++
#include <iostream>
using namespace std;
void deleteChars(char* A, char* B) {
int lenA = strlen(A); // 获取字符串A的长度
int lenB = strlen(B); // 获取字符串B的长度
bool flag = false; // 标记是否需要删除字符
for (int i = 0; i < lenA; i++) {
if (A[i] == B[0]) { // 如果找到了B的第一个字符
flag = true; // 设置标记
for (int j = 1; j < lenB; j++) {
if (A[i+j] != B[j]) { // 如果后面的字符与B不匹配
flag = false; // 取消标记
break;
}
}
if (flag) { // 如果标记为真
for (int j = 0; j < lenB; j++) {
A[i+j] = ' '; // 将A中的字符用空格替换
}
}
}
}
// 输出删除后的A结果
for (int i = 0; i < lenA; i++) {
if (A[i] != ' ') {
cout << A[i];
}
}
cout << endl;
}
int main() {
char A[] = "Hello, world!";
char B[] = "lo";
deleteChars(A, B);
return 0;
}
```
这段代码实现了删除A中遇到的所有B字符串中的字符,并输出最后删除后的A结果。其中,deleteChars函数接受两个指针类型的参数A和B,分别代表待删除字符的字符串和删除字符的字符串。首先,我们用两个变量lenA和lenB获取字符串A和B的长度。然后,我们遍历字符串A,找到与字符串B相匹配的位置,并将找到的位置标记为true。接着,我们遍历字符串B的每一个字符,判断是否与字符串A相匹配。如果匹配,则将字符串A中的字符用空格替换。最后,我们输出删除后的A结果,即将空格替换为原来的字符。
阅读全文