習題8 6 刪除字元 20分

2021-10-06 05:41:38 字數 1859 閱讀 2676

本題要求實現乙個刪除字串中的指定字元的簡單函式。

函式介面定義:

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 ...