天天看點

題目1049:字元串去特定字元——九度OJ

題目1049:字元串去特定字元

http://ac.jobdu.com/problem.php?pid=1049

時間限制:1 秒 記憶體限制:32 兆

<dl></dl>

<dt>題目描述:</dt>

<dd></dd>

輸入字元串s和字元c,要求去掉s中所有的c字元,并輸出結果。

<dt>輸入:</dt>

測試資料有多組,每組輸入字元串s和字元c。

<dt>輸出:</dt>

對于每組輸入,輸出去除c字元後的結果。

<dt>樣例輸入:</dt>

<dt>樣例輸出:</dt>

關于這個題目,有幾個地方要吐槽一下:

1、沒有說明資料範圍

2、輸入輸出沒有明确的格式說明

下面是兩個AC的代碼,大家自己對比着看吧

代碼一:

題目1049:字元串去特定字元——九度OJ
題目1049:字元串去特定字元——九度OJ

View Code

代碼二:

題目1049:字元串去特定字元——九度OJ
題目1049:字元串去特定字元——九度OJ

解析:

關于算法:投機取巧的做法是直接判斷每一個字元是否題目不給輸出的字元然後判斷是否輸出該字元。

關于輸入輸出格式的說明:

gets()是輸入一整行。換行符不作為讀取串的内容,讀取的換行符被轉換為‘\0’空字元,并由此來結束字元串。

scanf()利用%s是輸入遇到空白符(空格、Tab或回車)時截止。

在輸入字元資料(%c)時,若格式控制串中無非格式字元,則認為所有輸入的字元均為有效字元。

例如:

<code>scanf</code><code>(</code><code>"%c%c%c"</code><code>,&amp;a,&amp;b,&amp;c);</code>

輸入為:<code>d e f</code>

隻有當輸入為:def 時,才能把'd'賦于a,'e'賦予b,'f'賦予c。 如果在格式控制中加入空格作為間隔,

<code>scanf</code><code>(</code><code>"%c %c %c"</code><code>,&amp;a,&amp;b,&amp;c);</code>

則輸入時各資料之間可加空格。

如果格式控制串中有非格式字元則輸入時也要輸入該非格式字元。

用%s來輸入字元串的話,不接受回車符。

然後呢,這個題目就要慢慢試試看到底是字元串和字元同一行呢還是分作兩行。另外,再試試看輸出時每一組之間要不要回車。麻煩吧……

繼續閱讀