用C语言编写函数将字符串中的前导*号全部移到字符串的尾部,程序包含指针
时间: 2023-12-05 11:05:25 浏览: 160
C#实现移除字符串末尾指定字符的方法
好的,可以使用指针实现该函数。下面是一个示例代码:
```c
#include <stdio.h>
void move_star(char *str) {
char *p = str;
char *q = str;
while (*p) {
if (*p != '*') {
*q++ = *p;
}
p++;
}
while (*q) {
*q++ = '*';
}
}
int main() {
char str[] = "***hello*world**";
printf("Original string: %s\n", str);
move_star(str);
printf("Modified string: %s\n", str);
return 0;
}
```
该函数的实现思路是:使用两个指针p和q,初始都指向字符串的首字符。遍历整个字符串,如果p指向的字符不是星号,则将其移动到q指向的位置,并将q向后移动一个位置;否则只将p向后移动一个位置。最后,将q指向的位置及其后面的所有字符都改为星号即可。
注意,此处的字符串是以字符数组的形式传递给函数的,因此需要在函数内部修改该字符数组。如果需要修改传入的字符串,可以将函数参数改为指向字符数组的指针。
阅读全文