С Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Даня98
29 / 29 / 8
Регистрация: 13.02.2010
Сообщений: 145
#1

Find из string.h - C++

09.09.2011, 19:03. Просмотров 31784. Ответов 7
Метки нет (Все метки)

Расскажите про функцию find из библиотеки строк. Не получается использовать, и какое значение она выдает, если в строке подстроки не оказалось?
Не посылайте на другие сайты
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.09.2011, 19:03
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Find из string.h (C++):

find() from string! - C++
Ищу в строке вхождения подстроки, запоминаю номер. Если нашел, то удаляю подстроку и вставляю соответствующий ей ключ с той же позиции. ...

std::string::find и кириллица - C++
есть простенький код #include <iostream> // std::cout #include <string> // std::string int main () { ...

String::find работает некорректно - C++
У меня есть такая подзадача: есть строка тегов(латинские буквы в треугольных строках, если тег начинается с /, то это закрывающий), нужно...

Метод find класса string - C++
У меня задание: нужно написать программу, которая находит текст, в файле, показывает номер строки и саму строку, в которой текст находится....

Как использовать функции string::find или функция strstr(str1 ,str2) - C++
как использовать функции string::find или функция strstr(str1 ,str2) Добавлено через 3 минуты вернее какой у них синтаксис привдети...

Доступ к паре в map<string, vector<pair<string, string>>>Temp - C++
Подскажите пожалуйста как получить данные в векторе пар ? void showData(const map&lt;string, vector&lt;pair&lt;string, string&gt;&gt;&gt;Temp) { ...

7
rangerx
1937 / 1546 / 141
Регистрация: 31.05.2009
Сообщений: 2,913
09.09.2011, 19:10 #2
Цитата Сообщение от Даня98 Посмотреть сообщение
какое значение она выдает, если в строке подстроки не оказалось?
C++
1
std::string::npos
1
diagon
Higher
1932 / 1198 / 49
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
09.09.2011, 19:10 #3
Возвращает итератор на найденный элемент, если элемент не был найден, то возвращает итератор на конец строки. Так как-то.
А, стоп, это про find из алгоритмов.
Метод стринга возвращает индекс найденного элемента(или npos, если его нету).
1
Даня98
29 / 29 / 8
Регистрация: 13.02.2010
Сообщений: 145
09.09.2011, 19:12  [ТС] #4
Цитата Сообщение от rangerx Посмотреть сообщение
std::string::npos
а какое значение по умолчанию, и как значение устанавливать?
0
diagon
Higher
1932 / 1198 / 49
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
09.09.2011, 19:17 #5
Цитата Сообщение от Даня98 Посмотреть сообщение
а какое значение по умолчанию?
-1 обычно. Но зависит от реализации, так что так и нужно писать
C++
1
if ( str.find('x') == std::string::npos ) //не найдено
1
Даня98
29 / 29 / 8
Регистрация: 13.02.2010
Сообщений: 145
09.09.2011, 19:18  [ТС] #6
странно, у меня выкидывало LONG_MAX как npos
0
easybudda
Модератор
Эксперт CЭксперт С++
9700 / 5650 / 964
Регистрация: 25.07.2009
Сообщений: 10,873
09.09.2011, 19:28 #7
В string.h никакого find в принципе нет. Есть strstr(). std::find() есть в algorithm, есть метод find() класса std::string объявленного в string...
1
Go0gle
18 / 18 / 1
Регистрация: 08.09.2011
Сообщений: 22
09.09.2011, 19:45 #8
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от Даня98 Посмотреть сообщение
Расскажите про функцию find из библиотеки строк. Не получается использовать, и какое значение она выдает, если в строке подстроки не оказалось?
Не посылайте на другие сайты

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#include "iostream"
#include "locale"
#include <string>
 
using namespace std ;
 
 
int main()
{
    setlocale(LC_ALL,".OCP") ;
 
    string str = "Hello friend" ;   //Строка для примера
 
    int pos = str.find("friend") ;  //Ищем "friend" в str
 
    /*Если функция find найдет совпадение, но она вернет нам позицию первого симсола
      совпадаемого слова. В нашем случаи это 6-ой симсов ( счет начинается с нуля )
    */
    wcout<< pos ;  //Выводим 6 на экран для подтверждения
    cout<<endl ;
 
     pos = str.find("Text") ; //Ищем  "Text" в строке str .
 
     /*У меня , при не нахождении текста выводит "-1" */
     wcout<<"Если не найдет мы получаем:" <<pos ;
 
 
    return 0;
}
8
09.09.2011, 19:45
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.09.2011, 19:45
Привет! Вот еще темы с ответами:

Какое одинаковое значение можно вернуть из функций <string> f () и vector < <string> > f()? - C++
Понятное дело, что всё обсуждение будет вертеться вокруг аналога NULL. char* f_0 () { return NULL; } char** f_1 () { ...

Как преобразовать char* в string и вывести переменную string на экран? - C++
for (int k = 0; k &lt; 10; k++) { int x = (int)rand() / RAND_MAX + rand() % 6 + 2; char *chars = new char; ...

Как используя C-String а потом и String class варьировать вывод? - C++
Дана задача: при вводе полного И.О.Ф. (в таком порядке) выводить Ф, И и О(только первую букву и .). И если О не задано - выводить только...

Есть ли аналог Map <String,String> чтобы передавать его как указатель на данные? - C++
Добрый день, подскажите, есть ли аналог Map &lt;String,String&gt; чтобы передавать его как указатель на данные? Заранее спасибо!


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.