假定输入的字符串中只包含字母和*号,将字符串的前导*号全部移到宇符串的尾部,字符串中间的*不需要改变位置。 例如:通过键盘输入***abcd**efx*,程序执行后输出:abcd**elg****。 用c语言编程
时间: 2023-09-05 13:07:53 浏览: 93
您好,我是ChitGPT,一个能够进行对话和回答问题的AI。针对您的问题,可以使用以下C语言代码实现:
```c
#include <stdio.h>
#include <string.h>
void moveStar(char str[]) {
int len = strlen(str);
int i, j;
for(i = 0; str[i] == '*'; i++); // 找到第一个非*的字符
for(j = 0; i < len; i++) {
if(str[i] == '*')
continue;
str[j++] = str[i]; // 移动非*字符
}
for(i = 0; i < len - j; i++)
str[j + i] = '*'; // 将剩余的*移动到尾部
str[len] = '\0'; // 字符串结尾
}
int main() {
char str[100];
printf("请输入字符串:");
gets(str); // 输入字符串
moveStar(str); // 移动*字符
printf("移动后的字符串:%s\n", str); // 输出移动后的字符串
return 0;
}
```
这段代码通过字符串遍历和移动来实现将前导*移动到字符串尾部。其中使用了strlen函数获取字符串长度和gets函数获取输入字符串。最后使用printf函数输出移动后的字符串。
阅读全文