C语言有以下字符串:****A*BC*DEF****,删除字符串中间的星号,得到如下结果:****ABCDEF****
时间: 2023-09-05 07:14:03 浏览: 57
精选_基于C语言实现的字符串比较-字符串删除首尾星号-商品管理系统_源码打包
可以使用指针和循环来实现字符串的删除操作,具体步骤如下:
1. 定义一个指针p,初始指向字符串的第一个字符;
2. 定义一个变量count,用来记录删除的星号数量,初始值为0;
3. 从左到右遍历字符串,遇到星号就将count加1,否则将当前字符移到p指向的位置,并将p后移一位;
4. 遍历完字符串后,将p指向的位置设置为字符串结束符'\0';
5. 最后将字符串的长度减去count即为删除星号后的长度。
代码示例:
```c
#include <stdio.h>
#include <string.h>
void remove_star(char* str) {
char* p = str;
int count = 0;
while (*str) {
if (*str == '*') {
count++;
} else {
*p++ = *str;
}
str++;
}
*p = '\0';
int len = strlen(str) - count;
str[len] = '\0';
}
int main() {
char str[] = "****A*BC*DEF****";
remove_star(str);
printf("%s\n", str); // 输出:****ABCDEF****
return 0;
}
```
注意:为了保证字符串的完整性,代码中并没有真正删除星号,而是将非星号字符移到了指针p指向的位置。
阅读全文