輸入兩字符串, 並保證b是a的一個子串數組
輸出出現的位置函數
Sample Input:ui
Tobeahahedhead head
Sample Output:spa
思路:找到相同的字符,子、母串同時延伸,若子串所有與母串延伸部分相同,輸出並結束,不然從新初始化,繼續尋找相同字符。
11
#include<stdio.h> #include<string.h> char a[1000], b[1000];//若是數組的範圍較大,可將其放到主函數外部進行聲明。 int main() { int c, j; scanf("%s%s", a, b);//%s輸入到字符串數組中時,遇空格便中止。 //注意:輸入的到字符串數組中時,不要打 & 。 int m = strlen(b);//獲取子串的大小 for (int i = 0;i < strlen(a);i++) { c = i, j = 0;//初始化 while (j < m && a[c] == b[j]) //相同便繼續,直到不一樣或者子串所有相同中止。 c++, j++; if (j == m) { printf("%d\n", i + 1);//題目是從1開始標記,而數組是從1開始標記,因此要+1 return 0; //題目說了必有解,因此找到便中止就行了 } } }
更多思路code
http://www.javashuo.com/article/p-pfwgeopu-em.htmlhtm
喜歡就點個贊吧!!blog