C语言中用循环语句实现有以下字符串:****A*BC*DEF****,删除字符串中间的星号,得到如下结果:****ABCDEF****
时间: 2023-09-02 22:15:46 浏览: 134
精选_基于C语言实现的字符串比较-字符串删除首尾星号-商品管理系统_源码打包
可以使用双指针法来实现这个功能,具体实现方法如下:
```c
#include <stdio.h>
#include <string.h>
int main() {
char str[] = "****A*BC*DEF****";
int len = strlen(str);
int i, j;
for (i = j = 0; i < len; i++) {
if (str[i] != '*') {
str[j++] = str[i];
} else if (i > 0 && i < len - 1 && str[i - 1] != '*' && str[i + 1] != '*') {
str[j++] = str[i];
}
}
str[j] = '\0';
printf("%s\n", str); // 输出结果:****ABCDEF****
return 0;
}
```
首先定义两个指针 `i` 和 `j`,其中 `i` 用于遍历字符串中的每一个字符,而 `j` 则用于保存新字符串中的字符位置。然后遍历字符串,如果当前字符不是星号,则将其保存到新字符串中,同时指针 `j` 向后移动一位;如果当前字符是星号,但前后都不是星号,则也将其保存到新字符串中。最后修改新字符串的结尾标记,即可得到最终的结果。
阅读全文