CODE[VS]-尋找子串位置-字串處理-天梯青銅

來源:互聯網
上載者:User

標籤:

題目描述 Description

給出字串a和字串b,保證b是a的一個子串,請你輸出b在a中第一次出現的位置。

輸入描述 Input Description

僅一行包含兩個字串a和b

輸出描述 Output Description

僅一行一個整數

範例輸入 Sample Input

abcd bc

範例輸出 Sample Output

2

資料範圍及提示 Data Size & Hint

字串的長度均不超過100

Pascal使用者請注意:兩個字串之間可能包含多個空格

 

思路:因為它是用一行來輸入兩個字串,所以必須得要把字串拆分,我的思路是用一個字串先儲存整個串,再拆分成兩個(這個很麻煩,部分聰明的童鞋已經想到邊輸入邊存,這也是蠻好的),然後將子串中的第一個字母提出來,迴圈搜尋字串裡面有沒有這個字母,有的話判斷這個字母后面的所有字母是不是與字串中的一一對應,用一個ans來記錄相同的字母數量,最後判斷ans是否等於子串的長度(即子串與字串中的一小段完全符合),就可以輸出了

 

代碼如下:

 1 #include <stdio.h> 2 #include <string.h> 3 int main() 4 { 5     char a[101],x[101],y[101]; 6     int len,i,j,o=0; 7     int ans=0; 8     gets(a); 9     len=strlen(a);10     for(i=0;i<len;i++)//拆分存入字串 11     {12         if(a[i]!=‘ ‘)13         {14             x[i]=a[i];15         }16         else 17         {18             x[i]=‘\0‘;19             break;20         }21     }22     for(j=i;j<len;j++)//拆分存入子串 23     {24         if(a[j]!=‘ ‘)25         {26             y[o]=a[j];27             o++;28         }29     }30     y[o]=‘\0‘;//末尾加上結束 31     for(i=0;i<strlen(x);i++)32     {33         if(x[i]==y[0])//用第一個字母來找,如果匹配,判斷後面的字母 34         {35             for(j=0;j<strlen(y);j++)36             {37                 if(x[i+j]==y[j])//如果後面的字母與字串匹配,ans++ 38                 {39                     ans++;40                 }41                 else //如果遇到一個不匹配的,結束,繼續找 42                 {43                     break;44                 }45                 if(ans==strlen(y))//判斷子串是否完全符合字串中的一段(即子串已經全部搜尋完,就是正確答案) 46                 {47                     printf("%d\n",i+1);//輸出子串第一個字母在字串中的位置 48                     return 0;49                 }50             }51         }52     } 53     return 0;54 }

 

CODE[VS]-尋找子串位置-字串處理-天梯青銅

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.