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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Нужна функция для суммирования матриц http://www.cyberforum.ru/cpp-beginners/thread774656.html
нужна функция для сложения матриц, естественно что складывать можно только равные матрицы, то по этому должно быть сообщение об ошибке что матрицы не равны #include "stdafx.h" #include <iostream> #include <time.h> using namespace std; //Функция выделения памяти для матрицы int** MemMatr(int n, int m)
C++ Отличия typedef от объявлений Собственно в чем отличия между : typedef struct { double x, y; bool worldDestroyed; int witcherCount; } everythingStruct; // от http://www.cyberforum.ru/cpp-beginners/thread774649.html
C++ Динамический двухмерный массив
ИМХО директива include предназначена для включения документа в тело JSP НА ЭТАПЕ ТРАНСЛЯЦИИ JSP В СЕРВЛЕТ , а не во время выполнения , соответственно значение аттрибута file должно содержать статичный URL и не может содержать JSP expression.
C++ Входит ли точка в заштрихованную область?
Добрый вечер! Собственно дан график: Нужно создать программу, которая будет проверять, входит ли точка (вводит пользователь) в этот график (заштрихованная область). Вопросов несколько: Самый главный пожалуй: как проверить, входит ли точка в треугольник? 2) Что делать, если вершина нижнего треугольника не дана :wall: ?
C++ Нахождение площадей пересечения случайных прямоугольников http://www.cyberforum.ru/cpp-beginners/thread774591.html
Предположим у меня есть некоторое количество прямоугольников (точек x;y которые образуют прямоугольники, а так же точки пересечения прямоугольников) расположенных случайно в декартовой системе координат, они могут пересекаться и образовывать площадью своего сечения случайные четырехугольники, треугольники, либо один прямоугольник может находиться внутри другого - как найти наибольшую площадь...
C++ Найти элементы массива в интервале (0<xi<1), их порядковые номера Массив А. Найти элементы массива в интервале (0<xi<1), их порядковые номера. Если в этом интервале нет элементов, то вывести сообщению пользователю. Найти сумму элементов у которых порядковые номера больше, чем (0<xi<1) Заранее спасибо! подробнее

Показать сообщение отдельно
bgm123
39 / 39 / 16
Регистрация: 29.01.2013
Сообщений: 277

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

29.01.2013, 19:37. Просмотров 346. Ответов 0
Метки (Все метки)

Написал функцию для подсчёта количества подстрок. При вызове на строках, которые в 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;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru