字串去特定字元-2009年哈爾濱工業大學電腦研究生機試真題

來源:互聯網
上載者:User

標籤:


題目描述:

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

輸入:

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

輸出:

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

範例輸入:

    heallo
    a

範例輸出:

    hello

解題代碼:

解法1:使用兩個數組, 第二個數組儲存去掉特定字元的字串

#include <stdio.h>int main(){    char arr[200];    char arrNew[200];    char focus;    while (scanf("%s", arr) != EOF){        getchar();        scanf("%c",&focus);        int j = 0;        for (int i = 0; arr[i] != ‘\0‘; i++){            if (arr[i] != focus){                arrNew[j] = arr[i];                j++;            }        }        arrNew[j] = ‘\0‘;        printf("%s\n",arrNew);    }    return 0;}

運行結果:

 

解法2: 僅使用一個數組,發現一個特定字元就位移一次,覆蓋掉特定字元

#include <stdio.h>#include <string.h>int main(){    char arr[200];    char focus;    while (scanf("%s", arr) != EOF){        int m = strlen(arr);        getchar();        scanf("%c",&focus);        for (int i = 0; i < m; i++){            if (arr[i] == focus){                for (int j = i + 1; j < m; j++){                    arr[j - 1] = arr[j];                }                i--;                arr[m-1] = ‘\0‘;                m--;            }        }        printf("%s\n",arr);    }    return 0;}

運行結果:

 

OJ判斷情況:

解法1:

解法2:

 

演算法分析:(本題也是水題)

解法1:使用兩個數組,第二個數組儲存去掉特定字元的字串

特別注意以下:

 while (scanf("%s", arr) != EOF){        getchar();        scanf("%c",&focus);

這裡的getchar(); 必須用,因為%c,會把斷行符號鍵作為一個字元,這樣下來就無法輸入特定字元了。

演算法複雜度:O(n^2)

 

解法2: 僅使用一個數組,發現一個特定字元就位移一次,覆蓋掉特定字元

注意以下:

                i--;                arr[m-1] = ‘\0‘;                m--;

位移一次,總的字串就少了一個字元,這個時候就相當於 i 的位置+1,所以要減一, 把m-1變成‘\0‘, 解釋: 原來的字串最後一個字元是‘\0‘, 那麼減少了一個, 就把倒數第二個設定為‘\0‘.

 

字串去特定字元-2009年哈爾濱工業大學電腦研究生機試真題

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.