问答题
1. 请编写一个函数,用来删除字符串中的所有“*”。
例如,输入“abc*de*f*gh”,则输出为“abcdefgh”。
注意:部分源程序如下。
请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的花括号中填入所编写的若干语句。
试题程序: #include<stdio.h>
#include<ctype.h>
#include<conio.h>
#include<stdlib.h>
void proc(char*str)
{
}
void main()
{
char str[81];
system("CLS");
printf("Input a string:");
gets(str);
puts(str);
proc(str);
printf("***str:%s\n",str);
}
【正确答案】void proc(char *str)
{
int i,j=0;
for(i=0;str[i]!='\0';i++)//从下标为0处开
始判断
if(str[i]!='*')//当不是"*"号时
str[j++]=str[i];//把它放到数组str中
str[j]='\0';//最后用'\0'作为结束标志
}
【答案解析】 根据题目的要求删除字符串中所有的“*”号,需要检查字符串中的每一个字符,将不是“*”号的字符放入原来的字符串中,形成新的字符串,最后,在新的字符串的末尾加上结束符。