字符串中的内容为“****A*BC*DEF*G*******”,删除后,字符串中的内容应当是“A*BC*DEF*G”
时间: 2023-11-25 20:50:15 浏览: 136
以下是C语言的代码实现,可以删除字符串中的所有星号:
```c
#include <stdio.h>
void fun(char *s)
{
int i, j = 0;
for (i = 0; s[i] != '\0'; i++)
{
if (s[i] != '*')
{
s[j] = s[i];
j++;
}
}
s[j] = '\0';
}
```
使用该函数可以删除字符串中的所有星号,例如:
```c
char s[] = "****A*BC*DEF*G*******";
fun(s);
printf("%s", s); // 输出:A*BC*DEF*G
```
相关问题
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;
}
```
蓝桥杯规定输入的字符串中只包含字母和*号。请编写函数将字符串中的前面*号全部删除,中间和尾部的*号不删除。 例如,若字符串中的内容为******A*BC*DEF*G****,删除后,字符串中的内容则应当A*BC*DEF*G****。在编写函数时,不得使用C语言提供的字符串函数。
以下是一个利用指针实现的函数,用于删除字符串开头的连续*号:
```c
#include <stdio.h>
void StrDel(char *s) {
int i = 0;
while (*s == '*') {
s++;
i++;
}
int j = 0;
while (*(s + j) != '\0') {
*(s + j) = *(s + j + i);
j++;
}
*(s + j) = '\0';
}
int main() {
char a[100];
scanf("%s", a);
StrDel(a);
printf("%s", a);
return 0;
}
```
运行示例:
输入:******A*BC*DEF*G****
输出:A*BC*DEF*G****
阅读全文