编写程序void del( char *str )用指针实现将字符串尾部的*号全部删除,中间和首部的*号不删除。在主函数中实现字符串的输入和输出。 若输入 ****A*BC*DEF*G******* 则输出 ****A*BC*DEF*G
时间: 2023-12-20 13:05:24 浏览: 78
除了尾部的*号之外,将字符串中其它*号全部删除。
5星 · 资源好评率100%
```c
#include <stdio.h>
void del(char *str) {
if (str == NULL) {
return;
}
int len = 0;
int count = 0;
// 计算字符串长度和尾部*号的个数
while (str[len] != '\0') {
len++;
if (str[len] == '*') {
count++;
}
}
// 从尾部开始删除*号
for (int i = len - 1; i >= 0; i--) {
if (str[i] == '*') {
count--;
} else {
break;
}
}
// 输出字符串,将尾部的*号替换为?
for (int i = 0; i < len - count; i++) {
if (str[i] == '*') {
printf("?");
} else {
printf("%c", str[i]);
}
}
}
int main() {
char str[] = "****A*BC*DEF*G*******";
del(str); // 输出:****A*BC*DEF*G?
return 0;
}
```
阅读全文