Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.71/7: Рейтинг темы: голосов - 7, средняя оценка - 4.71
21 / 9 / 0
Регистрация: 18.06.2011
Сообщений: 185
1

Объясните про strchr

24.10.2012, 19:07. Просмотров 1431. Ответов 3
Метки нет (Все метки)


pch-str+1 - 1).что это значит? Координально не понятно, ведь строкой выше, а именно pch=strchr(str,'s') мы присвоили pch адрес переменной s, которая в нашем случае будет встречаться в слове "This".

2).Собственно как вообще мы что-то может отнимать, да потом ещё и прибавлять str(вроде бы в данном случае он указатель)?

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <stdio.h>
#include <string.h>
 
int main ()
{
  char str[] = "This is a sample string";
  char * pch;
  printf ("Looking for the 's' character in \"%s\"...\n",str);
  pch=strchr(str,'s');
  printf ("found at %d\n",pch-str+1); 
 
  return 0;
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
24.10.2012, 19:07
Ответы с готовыми решениями:

Объясните про наследование
class A { protected: int n; // закрыты для A, но доступны для B public: virtual void...

Объясните про инициализацию
Реализовал свой класс для строки (в качестве практики изучения c++) class TString { char*...

Объясните про исключения
Собственно хочу реализовать класс исключений. Начал искать информацию в интернете, но там были в...

Популярно объясните про указатели
Что-то плохо даётся мне тема про указатели. Я хорошо уяснил, что вот так создаётся указатель: ...

3
Don't worry, be happy
16971 / 9852 / 1897
Регистрация: 27.09.2012
Сообщений: 24,430
Записей в блоге: 1
24.10.2012, 19:11 2
Цитата Сообщение от aleksand Посмотреть сообщение
2).Собственно как вообще мы что-то может отнимать, да потом ещё и прибавлять str(вроде бы в данном случае он указатель)?
Обыкновенная адресная арифметика

Цитата Сообщение от aleksand Посмотреть сообщение
1).что это значит? Координально не понятно, ведь строкой выше, а именно pch=strchr(str,'s') мы присвоили pch адрес переменной s, которая в нашем случае будет встречаться в слове "This".
pch будет указателем на место в str, где встречается символ 's'
C++
1
pch-str+1
разница адреса 's' и адреса начала строки. В результате получим порядковый номер буквы "s" в строке (не путайте с индексом в массиве)
0
21 / 9 / 0
Регистрация: 18.06.2011
Сообщений: 185
24.10.2012, 19:14  [ТС] 3
Цитата Сообщение от Croessmah Посмотреть сообщение
Обыкновенная адресная арифметика


pch будет указателем на место в str, где встречается символ 's'
C++
1
pch-str+1
разница адреса 's' и адреса начала строки
Не читал ещё про адресную арифметику. Можете подсказать что-нибудь по этому поводу?
0
Don't worry, be happy
16971 / 9852 / 1897
Регистрация: 27.09.2012
Сообщений: 24,430
Записей в блоге: 1
24.10.2012, 19:23 4
Цитата Сообщение от aleksand Посмотреть сообщение
Не читал ещё про адресную арифметику. Можете подсказать что-нибудь по этому поводу?
C++
1
2
3
4
5
6
7
8
9
10
11
#include <stdio.h>
#include <string.h>
 
int main ()
{
  char str[] = "This is a sample string";
  int i=0;
    while(*(str+i))printf("%s\n",(str+i++));
    getchar();
  return 0;
}
А так почитайте про "операции с указателями"
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
24.10.2012, 19:23

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь или здесь.

Объясните про сокеты
Никак не дойдёт вот на javascript сокет написал, с тестовых эхо сервером связался - всё в...

Объясните про вордпресс
Добрый день, помогите мне как начинающему блогеру разобраться в одном вопросе) Я хочу создать в...

Объясните про цикл for
В исходниках обнаружил следущий метод: def main(LIST_APIS): LIST_APIS =...

Объясните пожалуйста про @INC
Всем привет. Не скажу, что совсем не умею писать на Perl но до недавнего времени обходился файлами...


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

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

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