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

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

Войти
Регистрация
Восстановить пароль
 
aleksand
21 / 9 / 2
Регистрация: 18.06.2011
Сообщений: 185
#1

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

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

C++ Функция strchr (Язык Си) -не выполняет=(
C++ функция strchr
C++ Объясните про наследование
C++ strchr
C++ Объясните про инициализацию
Функция strchr C++
Объясните задачу про представление вещественных чисел в памяти компьютера C++
Популярно объясните про указатели C++
создать функцию-аналог strstr, strchr C++
C++ Вывести на экран все различные буквы строки с использованием strchr
Сбой при нулевой выдаче у функций strchr и strstr C++
C++ Найти первые вхождения символов (функции strchr(), tolower())

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Croessmah
Модератор
Эксперт CЭксперт С++
 Аватар для Croessmah
12540 / 7102 / 797
Регистрация: 27.09.2012
Сообщений: 17,521
Записей в блоге: 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
Модератор
Эксперт CЭксперт С++
 Аватар для Croessmah
12540 / 7102 / 797
Регистрация: 27.09.2012
Сообщений: 17,521
Записей в блоге: 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
Ответ Создать тему
Опции темы

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