懸停顯示 wordpress杭州seo關(guān)鍵詞優(yōu)化公司
要求
假定輸入的字符串中只包含字母和*號。請編寫函數(shù)fun,它的功能是:除了字符串前導(dǎo)的*號之外,將串中其它*號全部刪除。在編寫函數(shù)時,不得使用C語言提供的字符串函數(shù)。函數(shù)fun中給出的語句僅供參考。
例如,字符串中的內(nèi)容為:-****A*BC*DEF*G******,刪除后,字符串中的內(nèi)容應(yīng)是:****ABCDEFG.
解題思路
本題的考核點是公式算法本題的考核點是刪除字符串中字符的算法。解題思路:從字符串的第一個字符開始往后逐個判斷是否為*號,直到找到非*號字符為止,將非*字符前移,最后在該字符后面加上結(jié)束符號’\0’。
代碼?
#include <stdio.h>
void fun( char *a )
{/* 以下代碼僅供參考 */int i=0,k;while(a[i]=='*') i++;k=i;while(a[i]!='\0') /* 以下程序段實現(xiàn)非*字符前移 */{if(a[i]!='*'){a[k]=a[i];k++;} i++;}a[k]='\0';
}main()
{ char s[81];void NONO ();printf("Enter a string:\n");gets(s);fun( s );printf("The string after deleted:\n");puts(s);NONO();getchar();
}
void NONO ()
{/* 本函數(shù)用于打開文件,輸入數(shù)據(jù),調(diào)用函數(shù),輸出數(shù)據(jù),關(guān)閉文件。 */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) ;
}