所属年份:2011.9
规定输入的字符串中只包含字母和*号。编写函数fun,其功能是:除了字符串前导和尾部的*号外,将串中其它的*号全部删除。形参h已指向字符串中第一个字母,形参p指向字符串的中最后一个字母。在编写函数时,不得使用C语言提供的字符串函数。
例如,若字符串中的内容为****A*BC*DEF*G*******,删除后,字符串中的内容应当是:****ABCDEFG********。在编写函数时,不得使用C语言提供的字符串函数。
#include <stdio.h> void fun( char *a, char *h,char *p ) { } main() { char s[81],*t, *f; printf("Enter a string:\n");gets(s); t=f=s; while(*t)t++; t--; while(*t=='*')t--; while(*f=='*')f++; fun( s , f,t ); printf("The string after deleted:\n");puts(s); }
【考点分析】
本题考查:while循环语句,注意循环条件的设定;指针型变量。
【解题思路】
本题的重点是要选择好判断条件,首先是需要判断前导*的结束,然后判断是否指向最后一个字母,最后补充尾部*,只要思路对了就可正确解答。
【参考答案】
void fun( char *a, char *h,char *p ) { int i=0; char *q=a; while(q<h) { a[i]=*q; q++;i++;} while(q<p) { if(*q!='*') { a[i]=*q; i++; } q++; } while(*q) { a[i]=*q; i++; q++;} a[i]='\0'; }