#1059. 子串位置
输入格式
输入两字符串, 并保证b是a的一个子串
输出格式
输出出现的位置
样例
Sample Input:
Tobeahahedhead
head
Sample Output:
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; //题目说了必有解,所以找到便停止就好了 } } }
更多思路
https://www.cnblogs.com/Attacking-vincent/p/12720675.html
喜欢就点个赞吧!!
出处:https://www.cnblogs.com/Attacking-vincent/