C++字符串查找
对于一个给定的 source 字符串和一个 target 字符串,你应该在 source 字符串中找出 target 字符串出现的第一个位置(从0开始)。如果不存在,则返回 -1。
例如:
输入: source = "tartarget " target = "target " 输出 3
输入:source = “source” target = “target” 输出 -1
```cpp
#include <iostream>
#include <string>
using namespace std;
int strStr(string &source, string &target){
int sLen = source.length();
int tLen = target.length();
//如果target的长度比source更大,肯定source不存在target
if(sLen<tLen){
return -1;
}
//如果target为空,肯定是在source第0个
if(tLen==0)
return 0;
int i=0;
for(i;i<sLen;i++){
if(source[i]==target[0]){
if(i+tLen>sLen)
return -1;
int j=1;
for(j;j<tLen;j++){
//如果第j个不一样就结束这个for循环
if(source[i+j]!=target[j])
break;
}
//如果j等于tLen,说明最后一个字符也是相等的,从source第i个字符开始于target相同,返回i
if(j==tLen)
return i;
}
}
return -1;
}
int main() {
string source="tartarget";
string target="target";
int res = strStr(source,target);
cout<<res<<endl;
return 0;
}
`输出:3``