Форум программистов, компьютерный форум CyberForum.ru

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

Восстановить пароль Регистрация
 
aleksand
21 / 9 / 2
Регистрация: 18.06.2011
Сообщений: 185
24.10.2012, 19:07     Объясните про strchr #1
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;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.10.2012, 19:07     Объясните про strchr
Посмотрите здесь:

C++ Функция strchr (Язык Си) -не выполняет=(
C++ функция strchr
C++ Объясните про наследование
C++ strchr
C++ Объясните про инициализацию
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11845 / 6824 / 771
Регистрация: 27.09.2012
Сообщений: 16,919
Записей в блоге: 2
Завершенные тесты: 1
24.10.2012, 19:11     Объясните про strchr #2
Цитата Сообщение от aleksand Посмотреть сообщение
2).Собственно как вообще мы что-то может отнимать, да потом ещё и прибавлять str(вроде бы в данном случае он указатель)?
Обыкновенная адресная арифметика

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


pch будет указателем на место в str, где встречается символ 's'
C++
1
pch-str+1
разница адреса 's' и адреса начала строки
Не читал ещё про адресную арифметику. Можете подсказать что-нибудь по этому поводу?
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11845 / 6824 / 771
Регистрация: 27.09.2012
Сообщений: 16,919
Записей в блоге: 2
Завершенные тесты: 1
24.10.2012, 19:23     Объясните про strchr #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;
}
А так почитайте про "операции с указателями"
Yandex
Объявления
24.10.2012, 19:23     Объясните про strchr
Ответ Создать тему
Опции темы

Текущее время: 16:38. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru