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

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

Восстановить пароль Регистрация
 
 
VLK
 Аватар для VLK
192 / 161 / 12
Регистрация: 05.05.2013
Сообщений: 1,221
25.08.2013, 17:01     strstr из библиотеки cstring, как должно функционировать? #1
Вот у меня есть описание, переписано из книги:

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)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
VLK
 Аватар для VLK
192 / 161 / 12
Регистрация: 05.05.2013
Сообщений: 1,221
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
Модератор
Эксперт С++
 Аватар для Croessmah
11838 / 6817 / 771
Регистрация: 27.09.2012
Сообщений: 16,911
Записей в блоге: 2
Завершенные тесты: 1
26.08.2013, 12:46     strstr из библиотеки cstring, как должно функционировать? #22
В первом моем посте удалено всё лишнее и показано, что указатель на тип char нельзя передавать в operator<<
Цитата Сообщение от VLK Посмотреть сообщение
не чувствуется разница между двумя фразами
На скриншоте пять прототипов функции operator<< и под ними как раз требование к указателю s. Что тут не понятного?
Вы когда книгу читаете тоже сразу конец главы смотрите или все пункты "важно", а остальное нафиг не надо?

Добавлено через 1 минуту
Цитата Сообщение от VLK Посмотреть сообщение
способен ли получатель ответа понять этот ответ
Ну если этот получатель не может читать, то тут уже ничего не поможет...
VLK
 Аватар для VLK
192 / 161 / 12
Регистрация: 05.05.2013
Сообщений: 1,221
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, как должно функционировать?
Еще ссылки по теме:

string и cstring. Как это устроено? C++
C++ Как с использованием CString выбрать слова из строки длинной 4 символа и записать их в файл?
C++ Не работает strstr

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

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

Не по теме:

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

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

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