实现一个lastIndexOf函数

101 阅读1分钟
#include <iostream>
 
using namespace std; 
 
int lastIndexOf(string str, string find) {
  if (find.length() == 0) {
      return -1;
  }
  if (find.length() > str.length()) {
      return -1;
  }

  for (int i = str.length() - 1; i >= 0; i--) {
    int j = 0;
    for(; j < find.length(); j++) {
      if (str[i - j] != find[find.length() - 1 - j]) {
        break;
      }
    }

    if (j == find.length()) {
      printf("str: %c\n", str[i - find.length() + 1]);
      return i - find.length() + 1;
    }
  }

  return -1;
}

int main ()
{
   // 声明简单的变量
  string str = "a21b21c21d21e21f21g";

  int ind = lastIndexOf(str, "a21");
   
  printf("indexOf返回:%d\n", ind);

  return 0;
}