假定輸人的字符串中只包含字母和*號(hào)。請(qǐng)編寫函數(shù)proc,它的功能是:將字符串中 的前導(dǎo)*號(hào)全部刪除,
假定輸人的字符串中只包含字母和*號(hào)。請(qǐng)編寫函數(shù)proc,它的功能是:將字符串中 的前導(dǎo)*號(hào)全部刪除,中間和后面的*號(hào)不刪除。 例如,若字符串中的內(nèi)容為****a*bc*def*g****,刪除后,字符串中的內(nèi)容則 應(yīng)當(dāng)是a*bc*def*g****。 注意:部分源程序給出如下。 請(qǐng)勿改動(dòng)main函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc的花括號(hào)中填入所編 寫的若干語句。 試題程序: include<stdio.h> include<conio.h> void proc(char*str) { } void main { char str[81]; printf("Enter a string:kn"); gets(str); proc(str); printf("The string after deleted:kn"); puts(str);}
正確答案:void proc(char * str){char*p=str; while(* p= =*)p++;//通過p的移動(dòng)來達(dá)到使p指向第一個(gè)不是*號(hào)的字符 for(;* p!=\0;p++,str++)//把從第一個(gè)不是*號(hào)的字符放到a中 * str=* P: * str=\0;//最后用\0作為字符串結(jié)束標(biāo)志 }【解析】題目中要求將字符串中的前導(dǎo)*號(hào)全部刪除,首先將指針P移動(dòng)到第一個(gè)不是*的字符,將指針P之后的字符放入原來的字符串中,并為新的字符串添加結(jié)束符。
詞條內(nèi)容僅供參考,如果您需要解決具體問題
(尤其在法律、醫(yī)學(xué)等領(lǐng)域),建議您咨詢相關(guān)領(lǐng)域?qū)I(yè)人士。