Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Deamod1s
0 / 0 / 0
Регистрация: 28.10.2016
Сообщений: 9
1

Указатель,принимающий значение ф-ции strstr()

08.03.2017, 13:08. Просмотров 115. Ответов 1
Метки нет (Все метки)

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
#include <windows.h>
 
using namespace std;
 
int main()
{
SetConsoleOutputCP(1251);
SetConsoleCP(1251);
 
char s1[30] = "Привет,мой свет!";
char s2[30] = "Привет";
 
 
char*ptr = strstr(s1,s2);
cout << ptr;
 
return 0;
}
Два вопроса:
1) ф-ция strstr() возвращает указатель на первый символ подстроки (в строке s1),которая равна строке s2.в таком же случае принимать значение должен указатель на указатель?Почему значение принимает указатель?
2) Почему выводит не адрес первого элемента,на который указывает указатель,а всю строку s1?
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.03.2017, 13:08
Ответы с готовыми решениями:

указатель не меняется после выхода из ф-ции
void changePionter(char *p) { p=NULL; } int main() { char u='F'; char...

Передача ф-ции как параметра другой ф-ции
struct pupil{ char surname; int school; int answer; int...

Вычислить значение ф-ции F(x) на отрезке a,b с шагом h
Доброго времени суток! Помогите решить, или намекните в какую сторону копать...

Найти среднее значение значений ф-ции
Помогите пожалуйста, нужно написать оператор, который бы вычислял среднее...

Как получить ссылку на указатель или указатель на указатель в массиве?
В процессе реализации сортировки пузырьком натолкнулся на такую проблему: как...

1
DU3
281 / 233 / 115
Регистрация: 07.09.2016
Сообщений: 587
08.03.2017, 13:24 2
с первым вопросом вы чего-то перемудрили. логика простая: функция возвращает указатель на символ. сторона, которая принимает это тоже должна быть указателем на символ, а не указателем на указатель.

по поводу второго:
выводится строка, потому что операция << для char* (точнее const char*) определена так, что этот указатель рассматривается как указатель на символы, терминированные нулем. эти символы и выводятся. если хотите
адрес посмотреть, то надо этот указатель на чар преобразовать в какой-нибудь другой. например:
C++
1
std::cout << static_cast<const void*>(ptr) << std::endl;
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.03.2017, 13:24

Указатель на констансное значение
Я в указателях не особо шарю Вот инициализирую *mas и заполняю его числами...

Получить значение с поля типа указатель
Всем привет. Вот не задача. Нужно получить значение в поля класса типа...

Константный указатель на константу меняет значение
int d = 7; const int* const cd = &amp;d; d = 8; qDebug()&lt;&lt;*cd;


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

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

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