197 / 169 / 19
Регистрация: 05.05.2013
Сообщений: 1,235
1

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

25.08.2013, 17:01. Показов 2075. Ответов 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, как должно функционировать?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
25.08.2013, 17:01
Ответы с готовыми решениями:

Использование стандартной библиотеки cstring
Добрый день. Столкнулся с маленькой проблемой хочу понять более подробные возможности С++. ...

Почему у меня для использования функций cstring не нужно включать прототип библиотеки
Я недавно начал осваивать с++ с помощью учебника и там по ходу главы создается тренировочный класс...

CString::Format() и преобразование double в CString
Вот фрагмент программы: void CMy6_1Dlg::OnRadio3() { CString s; int i=m_list1.GetCount();...

Как должна быть организована сеть офиса? Что должно быть настроено обязательно, а чего быть не должно?
Добрый день. Сразу оговорюсь, что я инженер-строитель и настройкой сети занимаюсь только потому,...

23
197 / 169 / 19
Регистрация: 05.05.2013
Сообщений: 1,235
26.08.2013, 12:41  [ТС] 21
Croessmah, странно, неужели не чувствуется разница между двумя фразами

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

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

В первом варианте не ясно (это мягко сказать, благодаря этому тема растянулась 2 страницы), во-втором все предельно ясно, неужели изначально нельзя потратить немного больше времени и оценить, способен ли получатель ответа понять этот ответ, не пишу ли и я очередное сообщение просто так..
0
Don't worry, be happy
17758 / 10526 / 2030
Регистрация: 27.09.2012
Сообщений: 26,502
Записей в блоге: 1
26.08.2013, 12:46 22
В первом моем посте удалено всё лишнее и показано, что указатель на тип char нельзя передавать в operator<<
Цитата Сообщение от VLK Посмотреть сообщение
не чувствуется разница между двумя фразами
На скриншоте пять прототипов функции operator<< и под ними как раз требование к указателю s. Что тут не понятного?
Вы когда книгу читаете тоже сразу конец главы смотрите или все пункты "важно", а остальное нафиг не надо?

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

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

это не ответ, а скорее очередная порция вопросов, ну или более подходящим словом будет являться, новые ребусы.
0
Croessmah
26.08.2013, 12:59     strstr из библиотеки cstring, как должно функционировать?
  #24

Не по теме:

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

0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
26.08.2013, 12:59

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

как конвертнуть из char в CString?
Здрасте! Подскажите,плиз, как конвертнуть из char в CString ?

Как конвертировать CString в char[]
У меня есть массив char data=&quot;VOLT:DC:RANGE 10\n&quot;; мне нужно в этот массив занести свои данные...

Как ковертировать из CString в BYTE*
Как ковертировать из CString в BYTE* ?


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru