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

Не меняется значение указателя - C++

Восстановить пароль Регистрация
 
bgm123
39 / 39 / 16
Регистрация: 29.01.2013
Сообщений: 277
29.01.2013, 19:37     Не меняется значение указателя #1
Написал функцию для подсчёта количества подстрок. При вызове на строках, которые в main вместо 3 выдаёт ответ 4. На остальных строках ответ верный. Это связано с тем, что в цикле while в функции подсчёта подстрок на одной итерации, почему-то, не изменяется указатель на str (смотреть комментарии). Как это объяснить???

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
static int SearchSub(const char *str, const char *substr)
{
    int count = 0;
    int n = strlen(substr);
    
    while(strstr(str, substr) != NULL){
        count++;
        str += n;         //вот тут после 2-ой итерации не изменяется указатель str, почему???
    }
    
    return count;
}
 
int main(void){
    cout << ::SearchSub("121223124", "12") << endl;
 
    return 0;
}
Добавлено через 2 минуты
Я разобрался, спасибо.

Добавлено через 1 минуту
Так работает.

C++
1
2
3
4
5
6
7
8
9
10
11
12
static int SearchSub(const char *str, const char *substr)
{
    int count = 0;
    int n = strlen(substr);
    
    while(str = strstr(str, substr)){
        count++;
        str += n;
    }
    
    return count;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.01.2013, 19:37     Не меняется значение указателя
Посмотрите здесь:

Изменить значение указателя C++
Изменение значение указателя в цикле C++
Не получается присвоить значение указателя в функции C++
Как из указателя на массив достать конкретное значение массива C++
Меняется значение указателя C++
C++ Определить, как изменится значение указателя при выполнении кода
Не меняется значение переменной C++
Как проверить значение (существование) указателя? C++
Ввести с клавиатуры значение указателя C++
Разыменование указателя, не передается правильное значение C++
C++ Не меняется значение в структуре при выводе
Почему меняется значение константной переменной? C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

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