用c++4. 假定输入的字符串中只包含字母和*号。请编写函数void fun(char *a),其功能是除了尾部的*号之外,将字符串中的其它的*号全部删除。 例如,字符串中的内容****A*BC*DEF*G*******。删除后,字符串中的内容应当是ABCDEFG*******。
时间: 2024-02-26 22:51:08 浏览: 110
你可以使用两个指针来解决这个问题。一个指针用于遍历字符串,另一个指针用于记录有效字符的位置。具体的实现如下:
```cpp
void fun(char *a) {
if (a == nullptr) {
return;
}
int len = strlen(a);
int validIndex = 0; // 记录有效字符的位置
for (int i = 0; i < len; i++) {
if (a[i] != '*') {
a[validIndex++] = a[i];
}
}
// 将剩余的字符设置为*
for (int i = validIndex; i < len; i++) {
a[i] = '*';
}
}
```
这个函数首先判断输入指针是否为空,然后遍历字符串,将非*字符复制到有效字符的位置,并更新有效字符的位置。最后,将剩余的字符设置为*。
阅读全文