C语言假定输入的字符串中只包含字母和 * 号,请编程序,它的功能是:删除字符串中的前导 * 号。如:输入“ ***A*BC*DEF*G*** ”时,则输出“ A*BC*DEF*G*** ”。
时间: 2024-01-10 10:21:09 浏览: 31
以下是一个C语言的程序,用于删除字符串中的前导*号:
```c
#include <stdio.h>
void removeLeadingStars(char *str) {
int i = 0;
while (str[i] == '*') {
i++;
}
int j = 0;
while (str[i] != '\0') {
str[j] = str[i];
i++;
j++;
}
str[j] = '\0';
}
int main() {
char str[] = "***A*BC*DEF*G***";
removeLeadingStars(str);
printf("%s\n", str); // 输出:A*BC*DEF*G***
return 0;
}
```
相关问题
c语言写假定输入的字符串中只包含字母和*号。请编写函数 fun,它的功能是将字符串中的前导*号全部移到字符串的尾部。
以下是实现该功能的C语言代码:
```c
void fun(char *str) {
int len = strlen(str);
int i, j;
// 计算前导*号的数量
int count = 0;
for (i = 0; i < len; i++) {
if (str[i] == '*') {
count++;
} else {
break;
}
}
// 移动前导*号到字符串尾部
for (i = 0, j = count; j < len; i++, j++) {
str[i] = str[j];
}
for (i = len - count; i < len; i++) {
str[i] = '*';
}
}
```
该函数的思路是先计算前导*号的数量,然后将非*号字符向前移动,最后将前导*号移到字符串尾部。注意要使用字符串的长度来遍历字符串。
C语言假定输入的字符串中只包含字母和*号。请编写程序:将字符串中的前导*号全部删除,中间和后面的*号不删除。例如,若字符串中的内容为****A*BC*DEF*G*******,删除后,字符串中的内容则应当是A*BC*DEF*G*******。 DEV C++
以下是C语言实现的代码,可以将字符串中的前导*号全部删除,中间和后面的*号不删除:
```c
#include <stdio.h>
#include <string.h>
void deleteLeadingStars(char str[]) {
int i, j, len;
len = strlen(str);
j = 0;
for (i = 0; i < len; i++) {
if (str[i] != '*') {
break;
}
j++;
}
for (i = 0; i < len - j; i++) {
str[i] = str[i + j];
}
str[i] = '\0';
}
int main() {
char str[100];
printf("请输入字符串:");
scanf("%s", str);
deleteLeadingStars(str);
printf("删除前导*号后的字符串为:%s\n", str);
return 0;
}
```