Форум программистов, компьютерный форум CyberForum.ru

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

Войти
Регистрация
Восстановить пароль
 
 
VLK
193 / 162 / 12
Регистрация: 05.05.2013
Сообщений: 1,222
#1

strstr из библиотеки cstring, как должно функционировать? - C++

25.08.2013, 17:01. Просмотров 988. Ответов 23
Метки нет (Все метки)

Вот у меня есть описание, переписано из книги:

char *strstr(const char *Str1, const char *Str2) - находит первое вхождение в строку Str1 строки Str2. Если строка Str2 найдена, возвращает указатель на нее в строке Str1. В противном случае возвращает нулевой указатель (NULL).

Вот программа:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream> 
using std::cin;
using std::cout;
using std::endl;
 
#include <string>
 
 
int main()
{
char *Str1 = "Hello world, good day!"; 
char *Str2 = "w0rld"; 
 
cout << strstr(Str1, Str2) << endl; 
 
system("pause");
return 0;
}
В слове world мы заменили "o" на "0" (ноль), вроде как слово не найдено, значит возвращаем NULL, программа запускается но выкидывает ошибку, в чем косяк?

Вот ошибка:
strstr из библиотеки cstring, как должно функционировать?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.08.2013, 17:01     strstr из библиотеки cstring, как должно функционировать?
Посмотрите здесь:

Функция strstr C++
Как из CString получить int ... заранее спасибо!! C++
C++ Как перевести CString -ское число в Int?
C++ Как CString преобразовать к нормальной строке?
C++ Как использовать функции string::find или функция strstr(str1 ,str2)
string и cstring. Как это устроено? C++
C++ Как с использованием CString выбрать слова из строки длинной 4 символа и записать их в файл?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
VLK
193 / 162 / 12
Регистрация: 05.05.2013
Сообщений: 1,222
26.08.2013, 12:41  [ТС]     strstr из библиотеки cstring, как должно функционировать? #21
Croessmah, странно, неужели не чувствуется разница между двумя фразами

Цитата Сообщение от Croessmah Посмотреть сообщение
указатель не должен быть равен нулю
как не может, если я пишу char *V = NULL; и все работает

И
Цитата Сообщение от Croessmah Посмотреть сообщение
нельзя передавать указатель на char равный нулю в функцию operator<<
этим, тут действительно, I]char *V = NULL; cout << V;[/I] - ошибка.

В первом варианте не ясно (это мягко сказать, благодаря этому тема растянулась 2 страницы), во-втором все предельно ясно, неужели изначально нельзя потратить немного больше времени и оценить, способен ли получатель ответа понять этот ответ, не пишу ли и я очередное сообщение просто так..
Croessmah
Модератор
Эксперт CЭксперт С++
12877 / 7263 / 810
Регистрация: 27.09.2012
Сообщений: 17,940
Записей в блоге: 2
Завершенные тесты: 1
26.08.2013, 12:46     strstr из библиотеки cstring, как должно функционировать? #22
В первом моем посте удалено всё лишнее и показано, что указатель на тип char нельзя передавать в operator<<
Цитата Сообщение от VLK Посмотреть сообщение
не чувствуется разница между двумя фразами
На скриншоте пять прототипов функции operator<< и под ними как раз требование к указателю s. Что тут не понятного?
Вы когда книгу читаете тоже сразу конец главы смотрите или все пункты "важно", а остальное нафиг не надо?

Добавлено через 1 минуту
Цитата Сообщение от VLK Посмотреть сообщение
способен ли получатель ответа понять этот ответ
Ну если этот получатель не может читать, то тут уже ничего не поможет...
VLK
193 / 162 / 12
Регистрация: 05.05.2013
Сообщений: 1,222
26.08.2013, 12:55  [ТС]     strstr из библиотеки cstring, как должно функционировать? #23
Цитата Сообщение от Croessmah Посмотреть сообщение
Ну если этот получатель не может читать, то тут уже ничего не поможет...
так как не способен, ответы типа:
Цитата Сообщение от Croessmah Посмотреть сообщение
нельзя передавать указатель на char равный нулю в функцию operator<<
Цитата Сообщение от IGPIGP Посмотреть сообщение
Нулевой указатель это же непечатное.
для меня полностью понятны и это именно то, что я хотел услышать.

А:
strstr из библиотеки cstring, как должно функционировать?
strstr из библиотеки cstring, как должно функционировать?
strstr из библиотеки cstring, как должно функционировать?

это не ответ, а скорее очередная порция вопросов, ну или более подходящим словом будет являться, новые ребусы.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.08.2013, 12:59     strstr из библиотеки cstring, как должно функционировать?
Еще ссылки по теме:

Функция strstr C++
C++ Не работает strstr
Как включить библиотеки в исполняемый файл, чтобы не приходилось ставить библиотеки (Eclipse) C++
Почему у меня для использования функций cstring не нужно включать прототип библиотеки C++
C++ Использование стандартной библиотеки cstring

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

Или воспользуйтесь поиском по форуму:
Croessmah
26.08.2013, 12:59     strstr из библиотеки cstring, как должно функционировать?
  #24

Не по теме:

facepalm... как бы лоб не разбить

Yandex
Объявления
26.08.2013, 12:59     strstr из библиотеки cstring, как должно функционировать?
Ответ Создать тему
Опции темы

Текущее время: 21:37. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru