編程題
假定輸入的字符串中只包含字母和*號(hào)。請(qǐng)編寫函數(shù)fun,它的功能是:刪除字符串中所有的*號(hào)。在編寫函數(shù)時(shí),不得使用C語言提供的字符串函數(shù)。
例如,字符串中的內(nèi)容為:****A*BC*DEF*G*******,刪除后,字符串中的內(nèi)容應(yīng)當(dāng)是:ABCDEFG。
注意: 部分源程序在文件PROG1.C中。
請(qǐng)勿改動(dòng)主函數(shù)main和其它函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入
你編寫的若干語句。
給定源程序:
#include
void fun( char *a )
{
}
main()
{ char s[81];
printf("Enter a string:\n");gets(s);
fun( s );
printf("The string after deleted:\n");puts(s);
NONO();
}
解題思路:
本題是考察字符串的操作。
1. 利用循環(huán)掃描字符串中所有的字符是否是'*',如果不是'*',則把這些字符存放字符串a(chǎn)首地址開始的位置上。
2. 最后給字符串a(chǎn)加上結(jié)束符。
參考答案:
void fun( char *a )
{
int j =0 ;
char *p=a;
while(*p) {
if(*p != '*') a[j++]=*p ;
p++ ;
}
a[j]=0;
}