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

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

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

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

25.08.2013, 17:01. Просмотров 1068. Ответов 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
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.08.2013, 17:01
Здравствуйте! Я подобрал для вас темы с ответами на вопрос strstr из библиотеки cstring, как должно функционировать? (C++):

Использование стандартной библиотеки cstring - C++
Добрый день. Столкнулся с маленькой проблемой хочу понять более подробные возможности С++. Задача: Напишите программу , которая просит...

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

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

Как включить библиотеки в исполняемый файл, чтобы не приходилось ставить библиотеки (Eclipse) - C++
Как включить библиотеки в конечный EXE как это сделано в bilder, чтобы не приходилось ставить библиотеки.

Как CString преобразовать к нормальной строке? - C++
// ... CRecordset *m_rs; // ... LVITEM lvi; // ... СString s; m_rs-&gt;GetFieldValue(j, s); lvi.pszText = ?;Тип lvi.pszText -...

string и cstring. Как это устроено? - C++
Здравствуйте. Изучаю азы С++. В процессе возникло несколько вопросов. Вопросы простые, но мне мешают. Во-первых. В стандартном наборе...

23
Jupiter
Каратель
Эксперт С++
6560 / 3981 / 227
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
26.08.2013, 12:16 #16
Цитата Сообщение от VLK Посмотреть сообщение
да, видел набор иноземных слов
даже гугл транслейт их правильно переведет

Цитата Сообщение от VLK Посмотреть сообщение
может все же правильнее можно сказать что нельзя напечатать указатель на 0 ?
да. сколько ж можно то

Добавлено через 5 минут
так даже ещё точнее
Цитата Сообщение от VLK Посмотреть сообщение
правильнее можно сказать что нельзя напечатать указатель char равный 0
1
Croessmah
Ушел
Эксперт CЭксперт С++
13554 / 7705 / 872
Регистрация: 27.09.2012
Сообщений: 19,006
Записей в блоге: 3
Завершенные тесты: 1
26.08.2013, 12:21 #17
Цитата Сообщение от VLK Посмотреть сообщение
Если указатель не должен быть равен нулю, почему тогда вот это работает:
И что здесь может не сработать?
Сказано же, что нельзя передавать указатель на char равный нулю в функцию operator<<

Добавлено через 18 секунд

Не по теме:

Цитата Сообщение от Jupiter Посмотреть сообщение
даже гугл транслейт их правильно переведет
Этот может

2
VLK
194 / 163 / 12
Регистрация: 05.05.2013
Сообщений: 1,225
26.08.2013, 12:30  [ТС] #18
Croessmah, вами было так много сказано в этой теме, какие то скриншоты, сколько энергии было потрачено, столько символов было напечатано, неужели нельзя было еще в первом сообщении написать это волшебное предложение:

Цитата Сообщение от Croessmah Посмотреть сообщение
нельзя передавать указатель на char равный нулю в функцию operator<<
это же куда проще, чем кидать какие то необработанные куски и намеки, потом спорить ну и т.д.
0
Croessmah
Ушел
Эксперт CЭксперт С++
13554 / 7705 / 872
Регистрация: 27.09.2012
Сообщений: 19,006
Записей в блоге: 3
Завершенные тесты: 1
26.08.2013, 12:34 #19
Цитата Сообщение от VLK Посмотреть сообщение
написать это волшебное предложение:
В посте #4 это даже красным подчеркнуто!!!
Цитата Сообщение от Jupiter Посмотреть сообщение
даже гугл транслейт их правильно переведет
В посте #11 жирным выделено

Добавлено через 1 минуту

Не по теме:

Цитата Сообщение от VLK Посмотреть сообщение
сколько энергии было потрачено
0.00000001%?



Добавлено через 35 секунд
Цитата Сообщение от VLK Посмотреть сообщение
какие то скриншоты
На этом скриншоте все ответы. Стоить только посмотреть внимательнее
0
Jupiter
26.08.2013, 12:34
  #20

Не по теме:

VLK, вам срочно нужно решать задачи на логику и на внимательность

1
VLK
194 / 163 / 12
Регистрация: 05.05.2013
Сообщений: 1,225
26.08.2013, 12:41  [ТС] #21
Croessmah, странно, неужели не чувствуется разница между двумя фразами

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

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

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

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

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.08.2013, 12:59
Привет! Вот еще темы с ответами:

Как из CString получить int ... заранее спасибо!! - C++
Проблемка ... Как из CString получить int.... только плиз не советуйте куда заглядывать в MSDN у меня его нету.... СПАСИБО....

Как перевести CString -ское число в Int? - C++
Есть CString -ское число. Как перевести это число в int??? Вот: { m_cap = m_cap + '1'; m_cap = c; int c = attol(m_cap); c =...

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

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


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

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

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