编制函数void deletechar(char S[],char c),其功能是删除一个字符串S中指定的字符c。要求原始字符串在主函数中输入,处理后的字符串在主函数中输出。 输入格式:第1行输入字符串,第2行输入删除字符
时间: 2024-03-10 15:47:38 浏览: 61
字符串指针作函数参数-C++程序设计(谭浩强完整版)
好的,这是一个删除字符串中指定字符的问题,下面是一个 C++ 代码实现:
```cpp
#include <iostream>
#include <cstring>
using namespace std;
void deletechar(char S[], char c) {
int len = strlen(S);
int j = 0;
for (int i = 0; i < len; i++) {
if (S[i] != c) {
S[j++] = S[i];
}
}
S[j] = '\0';
}
int main() {
char S[100], c;
cin.getline(S, 100);
cin >> c;
deletechar(S, c);
cout << S << endl;
return 0;
}
```
在这个实现中,我们定义了一个 `deletechar` 函数,它接收一个字符串和一个字符作为输入,使用双指针算法删除字符串中的指定字符。具体来说,我们使用变量 `j` 记录删除指定字符后的字符串的长度,然后使用两个指针 `i` 和 `j` 遍历字符串。当指针 `i` 指向的字符不是指定字符时,我们将其赋值给指针 `j` 指向的位置,并将指针 `j` 向后移动一位。当遍历字符串结束后,我们在指针 `j` 所指向的位置添加一个字符串结束标志符 `\0`,以确保输出的字符串是合法的。
在主函数中,我们首先使用 `getline` 函数从标准输入读取原始字符串,并使用 `cin` 函数读取指定字符。接下来,我们调用 `deletechar` 函数对原始字符串进行删除指定字符的操作,并使用 `cout` 函数输出处理后的字符串。最后,我们返回 0。
阅读全文