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

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

24.10.2012, 19:07. Просмотров 729. Ответов 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
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.10.2012, 19:07
Ответы с готовыми решениями:

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

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

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

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

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

3
Croessmah
++Ͻ
14500 / 8282 / 1556
Регистрация: 27.09.2012
Сообщений: 20,335
Записей в блоге: 3
Завершенные тесты: 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
aleksand
21 / 9 / 0
Регистрация: 18.06.2011
Сообщений: 185
24.10.2012, 19:14  [ТС] #3
Цитата Сообщение от Croessmah Посмотреть сообщение
Обыкновенная адресная арифметика


pch будет указателем на место в str, где встречается символ 's'
C++
1
pch-str+1
разница адреса 's' и адреса начала строки
Не читал ещё про адресную арифметику. Можете подсказать что-нибудь по этому поводу?
0
Croessmah
++Ͻ
14500 / 8282 / 1556
Регистрация: 27.09.2012
Сообщений: 20,335
Записей в блоге: 3
Завершенные тесты: 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
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.10.2012, 19:23

strchr
помогите пожалуйста реализовать данную функцию &quot;вручную&quot;.. и еще один вопросик.... есть...

Функция strchr
Наткнулся я на функцию strchr и не могу понять что она делает можете мне привести пример-код где...

функция strchr
мне надо написать аналог функции strchr. т.к. по заданию нельзя использовать &lt;string.h&gt;


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

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

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