除了尾部的*号之外,将字符串中其他*号全部删除c语言,假定输入的字符串中只包含字母和*号。请编写函数 fun(),它的功能是:除了尾部的,:号之外,将字符串_考题宝...
时间: 2023-12-05 12:06:01 浏览: 88
C语言程序设计-输入一个字符串,过滤此串,只保留串中的字母字符,并统计新生成串中包含的字母个数;
5星 · 资源好评率100%
可以使用双指针来实现该功能。具体步骤如下:
1. 找到字符串中最后一个冒号的位置,记为 index。
2. 从字符串的开头开始遍历,设双指针 i 和 j,初始值均为 0。
3. 当指针 j 所指字符不为 * 号时,将其赋值给指针 i 所指的位置,同时将指针 i 和 j 均向右移动一位;否则,只将指针 j 向右移动一位。
4. 当指针 j 所指的位置到达 index 时,停止遍历。
5. 最后,在字符串末尾添加一个结束符 '\0'。
以下是对应的 C 语言代码实现:
```c
void fun(char *str) {
int index = -1;
int i = 0, j = 0;
while (str[j] != '\0') {
if (str[j] == ':') {
index = j;
}
if (j != index && str[j] != '*') {
str[i++] = str[j];
}
j++;
}
str[i] = '\0';
}
```
阅读全文