Porównywanie stringów w C++

0

Potrzebuję ten kawałek kodu przerobić na C++ i mam z tym problem głównie chodzi o funkcję startsWith(). Czy istnieje w C++ odpowiednik funkcji z Javy startsWith() ?

private static String[] rzymskie ={"M", "CM", "D", "CD", "C","XC", "L", "XL", "X", "IX", "V", "IV", "I"};
private static int[] arabskie={1000, 900, 500, 400, 100, 90, 50, 40, 10, 9, 5, 4, 1};
public static int rzym2arab (String rzym)   {
int rzymska = 0;
    int index = 0;
    for (int i = 0; i < rzymskie.length; i++) {
        while (rzym.startsWith(rzymskie[i], index)) {
           rzymska += arabskie[i];
            index += rzymskie[i].length();
        }
    }
    return rzymska;
}
0

cos takiego z grubsza bedzie:

bool startsWith(const string& a, const string& b, size_t index = 0)
{
  if (a.size() < b.size()) return false;
  for (size_t i = index; i < b.size(); i++)
  {
    if (a[i] != b[i])
    {
      return false;
    }
  }
  return true;
}
1

Można też po prostu tak:

bool startsWith(const std::string &str,
                const std::string &prefix,
                std::size_t index = 0) {
  return (str.substr(index, prefix.length()) == prefix);
}

http://ideone.com/3TpuIK

0

Dzięĸi wielkie funkcja działa bez zarzutu, ostatnie rozwiązanie przydało się najbardziej

1 użytkowników online, w tym zalogowanych: 0, gości: 1