将一串字符串中的*删除
题目:假定输入的字符串中只包含字母和*号,请编写函数fun,它的功能是:
删除字符串中所有的*号。在编写函数时,不得使用C语言提供的字符串函数。
例如:字符串中的内容为ABCDEFG******删除后,字符串中的内容应当是:
ABCDEFG。
代码如下所示:
#include<stdio.h> void fun(char* a) #通过数组名传递参数 { int j = 0; char* p; #定义一个指针p p=a; #指针p指向a数组 while (*p!=0) # *p表示a数组中的元素,while判断条件是True,执行循环 { if (*p != '* ') #判断该元素是否为我们需要删掉的字符 a[j++] = *p;#注意这里不能写成a[j]=* *p;j++表示指向下一个元素的地址,下一个元素才是我们想保留的 p++;#遍历元素的地址 } a[j] ='\0';#不要忘记字符串的结束标志'\0' } void main() { char s[81];#传递实参 printf("Enter a string:\n"); gets(s);#从键盘输入一个字符串 fun(s);#调用函数 printf("The string after deleted:\n"); puts(s);#输出最终的字符串 }
输出结果如下所示: