将一串字符串中的*删除
题目:假定输入的字符串中只包含字母和*号,请编写函数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);#输出最终的字符串
}
输出结果如下所示: