本題要求實現乙個刪除字串中的指定字元的簡單函式。
函式介面定義:
void
delchar
(char
*str,
char c )
; 其中char
*str是傳入的字串,c是待刪除的字元。
函式delchar的功能是將字串str**現的所有c字元刪除。
裁判測試程式樣例:
#include
#define maxn 20
void
delchar
(char
*str,
char c )
;void
readstring
(char s)
;/* 由裁判實現,略去不表 */
intmain()
/* 你的**將被嵌在這裡 */
輸入樣例:
a
輸出樣例:
hppy new yer
法一:重新寫字串
void
delchar
(char
*str,
char c)
i++;}
str[j]
='\0'
;//最後補上結尾
}// 這個方法真好吶
/* 測試:
輸入樣例
aaaaa
輸出樣例
// 試數
str[0] != '\0', str[0] != c 不滿足, 直接跳到 i++ , i = 1;
str[1] != '\0', str[1] != c 不滿足, 直接跳到 i++ , i = 2;
str[2] != '\0', str[2] != c 不滿足, 直接跳到 i++ , i = 3;
str[3] != '\0', str[3] != c 不滿足, 直接跳到 i++ , i = 4;
str[4] !='\0' 不滿足,退出迴圈
str[0] = '\0' (空字串)
*/
2、法二:倒著迴圈,如果相等,前面等於後面
void
delchar
(char
*str,
char c )}/*
測試:輸入樣例
aaaaa
輸出樣例
// 試數(為了簡化試數,我們把 maxn = 5 來計算)
1> i=4; i>=0; str[4]=c 不滿足
2> i=3; i>=0; str[3]=c 成立; j=3, j<5-1=4, str[3] = str[4]='\0', j=4, j<4不成立, t=2
3> i=2; i>=0; str[2]=c 成立; j=2, j<5-2=3, str[2] = str[3]='\0', j=3, j<3不成立, t=3
4> i=1; i>=0; str[1]=c 成立; j=1, j<5-3=2, str[1] = str[2]='\0', j=2, j<2不成立, t=4
5> i=0; i>=0; str[0]=c 成立; j=0, j<5-4=1, str[0] = str[1]='\0', j=1, j<1不成立, t=5
6> i=-1; i>=0不成立,退出迴圈
*/
自己寫的主要是當輸出字串為空時輸出錯誤,所以這裡試數主要是試當輸出字串為空的情況
試數就是為了讓自己更好的看懂程式
習題8 6 刪除字元(20 分)
習題8 6 刪除字元 20 分 本題要求實現乙個刪除字串中的指定字元的簡單函式。void delchar char str,char c 其中char str是傳入的字串,c是待刪除的字元。函式delchar的功能是將字串str中出現的所有c字元刪除。include define maxn 20 v...
習題8 6 刪除字元(20 分)
本題要求實現乙個刪除字串中的指定字元的簡單函式。函式介面定義 void delchar char str,char c 其中char str是傳入的字串,c是待刪除的字元。函式delchar的功能是將字串str 現的所有c字元刪除。裁判測試程式樣例 include define maxn 20 vo...
習題8 6 刪除字元(20 分)
本題要求實現乙個刪除字串中的指定字元的簡單函式。void delchar char str,char c 其中char str是傳入的字串,c是待刪除的字元。函式delchar的功能是將字串str 現的所有c字元刪除。include define maxn 20 void delchar char ...