假定输入的字符串中只包含字母和*号。请编写函数fun,它的功能是:删除字符串中所有*号。在编写函数时,不得使用c语言提供的字符串函数。 #include <stdio.h> void fun( char *a ) { } int main() { char s[81]; printf("Enter a string:\n"); gets(s); fun( s ); printf("The string after deleted:\n"); puts(s); return 0; }
时间: 2024-01-23 18:03:54 浏览: 69
除了尾部的*号之外,将字符串中其它*号全部删除。
5星 · 资源好评率100%
好的,下面是函数fun的实现:
```c
#include <stdio.h>
void fun(char *a) {
int i, j;
for (i = 0, j = 0; a[i] != '\0'; i++) {
if (a[i] != '*') {
a[j++] = a[i];
}
}
a[j] = '\0'; // 注意添加字符串结尾标志
}
int main() {
char s[81];
printf("Enter a string:\n");
gets(s);
fun(s);
printf("The string after deleted:\n");
puts(s);
return 0;
}
```
函数fun的实现思路是:遍历原串a,将非*号的字符复制到原串a中,并使用j记录新串的下标,最后在新串的末尾添加字符串结尾标志'\0'。注意,为了避免修改原串的长度,我们可以将新串覆盖原串,最后将新串的末尾标志添加到原串的最后。
阅读全文