c++有以下字符串:****A*BC*DEF****,删除字符串中间的星号,得到如下结果:****ABCDEF****
时间: 2023-09-03 18:10:43 浏览: 95
可以使用字符串替换的方法来删除中间的星号,具体步骤如下:
1. 定义一个字符串变量,存储原始字符串。
2. 使用字符串替换函数(如Python中的replace()函数)将中间的星号替换为空字符串。
3. 将替换后的字符串赋值给原始字符串变量。
下面是Python代码实现:
```python
s = "****A*BC*DEF****"
s = s.replace("*", "") # 替换掉所有的星号
s = "****" + s + "****" # 添加两个星号
print(s)
```
输出结果为:****ABCDEF****
相关问题
c++编写函数 void fun(char *a),该函数实现的功能是:将字符串a 中除前导和尾部连续的*之外,其余的*全部删除。例如字符串: ***a*b**,处理后为: ***ab**。在 main函数中,从键盘输入带*且无空格的字符串,调用 fun 函数处理字符串,并将处理后的字符串输出到屏幕上。说明:不得使用系统提供的字符串函数。
好的,这是一个比较简单的字符串处理问题,可以按照以下步骤来实现:
1. 首先找到字符串中第一个非*字符的位置,用指针指向它。
2. 然后从字符串的末尾开始,找到第一个非*字符的位置,将其后面的字符全部替换为'\0'。
3. 最后遍历整个字符串,将非*字符依次复制到字符串的开头,即指针所指位置,同时将指针向后移动。
4. 最后,将指针所指位置的字符设置为'\0',即可得到处理后的字符串。
下面是代码实现:
```c++
#include <iostream>
using namespace std;
void fun(char *a)
{
char *p = a;
while (*p == '*') // 找到第一个非 * 字符的位置
p++;
char *q = p + strlen(p) - 1;
while (*q == '*') // 找到最后一个非 * 字符的位置
q--;
*(q + 1) = '\0'; // 将最后一个非 * 字符后面的字符全部替换为 '\0'
char *r = a;
while (p <= q) // 复制非 * 字符到 a 的开头
{
if (*p != '*')
{
*r = *p;
r++;
}
p++;
}
*r = '\0'; // 在最后一个非 * 字符后面添加 '\0'
}
int main()
{
char a[100];
cout << "请输入带 * 的字符串:" << endl;
cin >> a;
fun(a);
cout << "处理后的字符串为:" << endl;
cout << a << endl;
return 0;
}
```
示例输出:
```
请输入带 * 的字符串:
***a*b**
处理后的字符串为:
***ab**
```
编写c++程序函数 void fun(char *a),该函数实现的功能是:将字符串a 中除前导和尾部连续的*之外,其余的*全部删除。例如字符串: ***a*b**,处理后为: ***ab**。在 main函数中,从键盘输入带*且无空格的字符串,调用 fun 函数处理字符串,并将处理后的字符串输出到屏幕上。说明:不得使用系统提供的字符串函数。
好的,这是一个比较基础的字符串处理问题,以下是实现该函数和 main 函数的代码:
```c++
#include <iostream>
using namespace std;
void fun(char *a) {
int len = strlen(a);
int start = 0, end = len - 1;
// 找到第一个非 * 字符的位置
while (a[start] == '*') {
start++;
}
// 找到最后一个非 * 字符的位置
while (a[end] == '*') {
end--;
}
// 将中间的连续 * 字符删除
int i, j;
for (i = start, j = start; i <= end; i++) {
if (a[i] != '*') {
a[j++] = a[i];
} else if (i > 0 && a[i-1] != '*') {
a[j++] = a[i];
}
}
// 在结尾添加 '\0' 字符串结束符
a[j] = '\0';
}
int main() {
char str[100];
cout << "请输入带*且无空格的字符串: ";
cin >> str;
fun(str);
cout << "处理后的字符串为: " << str << endl;
return 0;
}
```
函数 `fun` 的实现思路是:
1. 找到第一个非 * 字符的位置和最后一个非 * 字符的位置。
2. 遍历字符串,将中间的连续 * 字符删除。
3. 在结尾添加字符串结束符 '\0'。
在 main 函数中,我们首先从键盘输入带*且无空格的字符串,然后调用 fun 函数处理该字符串,并将处理后的字符串输出到屏幕上。
阅读全文