C++:在主函数中定义一个一维字符数组,从键盘输入一串未排序的字符存入数组,在被调函数(delete)中删去一维数组中所有相同的字符,使之只保留一个,被调函数返回删除的字符个数。主调函数输出删除后的字符串
时间: 2024-03-10 20:43:21 浏览: 70
以下是实现代码:
#include <iostream>
#include <cstring>
using namespace std;
int deleteChar(char str[]) {
int len = strlen(str);
int cnt = 0;
for(int i = 0; i < len; i++) {
for(int j = i + 1; j < len; j++) {
if(str[i] == str[j]) {
cnt++;
for(int k = j; k < len; k++) {
str[k] = str[k + 1];
}
len--;
j--;
}
}
}
return cnt;
}
int main() {
char str[100];
cout << "请输入一串未排序的字符:";
cin >> str;
int cnt = deleteChar(str);
cout << "删除了 " << cnt << " 个字符后的字符串为:" << str << endl;
return 0;
}
函数 deleteChar
的实现思路是:首先计算一维字符数组的长度,然后使用两层循环遍历数组,若发现两个字符相同,则删除后面的字符,并将字符串长度减一,计数器加一。最后返回删除的字符个数。
注意,由于是从键盘输入字符串,若输入的字符串中有空格,则只会读入空格前的部分。如果需要读入包含空格的字符串,可以使用 getline()
函数。
相关推荐


















