二级C语言字符串题目
使用VC++2010打开考生文件夹下prog1中的解决方案,此解决方案的项目中包含一个源程序文件prog1.c。在此程序中,规定输入的字符串只包含字母和*
号。请编写函数fun,其功能是:将字符串尾部的*
号全部删除,前面和中间的*
号不动。
例如,字符串中的内容为:“****A*BC*DEF*G*******
”,删除后,字符串中的内容应当是:“****A*BC*DEF*G
”。在编写函数时,不得使用C语言提供的字符串函数。
注意:部分源程序在文件prog1.c中。
代码如下:
#include <stdio.h>
void fun( char *a )
{
int i=0;
char *p,*t;
t=p=a;
while(*p)
p++;
p--;
while(*p && *p=='*')
{
p--;
}
while(t!=p+1)
{
a[i]=*t;
i++;
t++;
}
a[i]='\0';
}
void main()
{ char s[81];void NONO ();
printf("Enter a string:\n");gets(s);
fun( s );
printf("The string after deleted:\n");puts(s);
NONO();
}
void NONO ()
{/* 本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。 */
FILE *in, *out ;
int i ; char s[81] ;
in = fopen("in.dat","r") ;
out = fopen("out.dat","w") ;
for(i = 0 ; i < 10 ; i++) {
fscanf(in, "%s", s) ;
fun(s) ;
fprintf(out, "%s\n", s) ;
}
fclose(in) ;
fclose(out) ;
}