在主函数中定义一个-维字符数组,从键盘输入一串未排序 的字符存入数组,在被调函数(del)中删除一维数组中所有相同的字 符,使之只保留一个,被调函数返回删除的字符个数,主调函数输出删 除后的字符串
时间: 2024-03-02 14:53:41 浏览: 93
好的,您的问题我已经接收到了,让我来回答您的问题。
以下是实现您所述功能的 C++ 代码:
```c++
#include <iostream>
#include <cstring>
using namespace std;
const int MAXN = 1005; // 字符串最大长度
// 删除重复字符函数
int del(char s[])
{
int len = strlen(s);
int cnt = 0; // 记录删除的字符个数
for (int i = 0; i < len; i++) {
for (int j = i + 1; j < len; j++) {
if (s[i] == s[j]) { // 如果找到重复的字符
cnt++; // 删除字符个数加一
for (int k = j; k < len; k++) {
s[k] = s[k + 1]; // 删除字符
}
len--; // 字符串长度减一
j--; // 因为删除了一个字符,所以 j 也要减一
}
}
}
return cnt;
}
int main()
{
char s[MAXN];
cout << "请输入一个字符串:";
cin >> s;
int cnt = del(s); // 调用删除函数
cout << "删除重复字符后的字符串为:" << s << endl;
cout << "共删除了" << cnt << "个字符。" << endl;
return 0;
}
```
代码说明:
1. 定义了一个常量 `MAXN`,表示字符串最大长度。
2. `del` 函数实现了删除重复字符的功能,其中 `cnt` 变量用于记录删除的字符个数。
3. 在主函数中,先从键盘输入一个字符串,然后调用 `del` 函数删除重复字符,最后输出删除后的字符串和删除的字符个数。
注意:本程序中只能处理单词,如果需要处理含有空格的句子,需要使用 `getline` 函数。
阅读全文