Если же фрагмент обнаружить не удастся, функция выдаст -1 -- отрицательное число, которое, естественно, не может быть позицией символа в строке.
В качестве примера работы данной функции приводится программа:
Код: Выделить всё
#include <iostream>
#include <string>
using namespace std;
int main ()
{
int p;
string a = "сеносеносеноиголкасеносеносеносено";
p = a.find("иголка");
cout << p << endl;
}
В результате на экран выводится число 12.
Ради интереса воткнул в программу строку: cout << a.find("иголка") << endl;
Код: Выделить всё
#include <iostream>
#include <string>
using namespace std;
int main ()
{
int p;
string a = "сеносеносеноиголкасеносеносеносено";
p = a.find("иголка");
cout << p << endl;
cout << a.find("иголка") << endl;
}
Результат работы:
12
12
Потом решил посмотреть на выдачу -1, если функции find() подсунуть символ, отсутствующий в строке:
Код: Выделить всё
#include <iostream>
#include <string>
using namespace std;
int main ()
{
int q;
string a = "сеносеносеноиголкасеносеносеносено";
q = a.find("Y");
cout << q << endl;
}
И действительно, был выдан результат: -1.
Аналогично воткнул в программу строку: cout << a.find("Y") << endl;
Код: Выделить всё
#include <iostream>
#include <string>
using namespace std;
int main ()
{
int q;
string a = "сеносеносеноиголкасеносеносеносено";
q = a.find("Y");
cout << q << endl;
cout << a.find("Y") << endl;
}
Результат работы:
-1
4294967295
Отсюда вопрос: почему cout << a.find("Y") << endl; выводит на экран не -1, а 4294967295?