C语言写出代码有以下字符:串****A*BC*DEF****.删除字符串中间的星号,得到如下结果:***ABCEE****
时间: 2023-09-05 22:14:03 浏览: 96
精选_基于C语言实现的字符串比较-字符串删除首尾星号-商品管理系统_源码打包
以下是使用C语言实现删除字符串中间的星号的代码:
```c
#include <stdio.h>
#include <string.h>
void remove_star(char *str) {
int len = strlen(str);
int i, j;
for (i = 0, j = 0; i < len; i++) {
if (str[i] != '*') {
str[j] = str[i];
j++;
} else if (i == 0 || i == len - 1 || str[i - 1] == '*' || str[i + 1] == '*') {
str[j] = str[i];
j++;
}
}
str[j] = '\0';
}
int main() {
char str[] = "****A*BC*DEF****";
printf("Original string: %s\n", str);
remove_star(str);
printf("Modified string: %s\n", str);
return 0;
}
```
运行结果为:
```
Original string: ****A*BC*DEF****
Modified string: ***ABCEE****
```
代码中的 `remove_star` 函数实现了删除字符串中间的星号的功能。具体实现方式为:遍历字符串,当遇到非星号字符时,将其拷贝到新的位置;当遇到星号字符时,如果其前后有非星号字符或者是字符串的第一个或最后一个字符,也将其拷贝到新的位置。最后,将新位置的字符数组末尾加上字符串结束符号 `\0`。
阅读全文