输入两字符串, 并保证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