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

Задача по строкам - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Блок схема : посчитать сумму элементов выше главной диагонали матрицы 5х5. http://www.cyberforum.ru/cpp-beginners/thread549343.html
Помогите плизз составить блок схему к задаче. Посчитать сумму элементов выше главной диагонали матрицы 5х5.
C++ правильно ли проверка на то, что поиск пуст? вот часть кода: ... proc = strstr(proc, slovo); if(proc == NULL) { log << "proc is NULL\n"; break; } ... http://www.cyberforum.ru/cpp-beginners/thread549332.html
C++ Ошибка LNK2001 и LNK1120
#include <math.h> #include <stdio.h> #include <stdlib.h> const double dt=1e-3; const double g=9.81; double fly(double U, double alfa, double h0){ double y=h0; double x=0; double...
C++ Заполнить массив по спирали
Заполнить двумерный массив,возрастающей последовательностью, расположив элементы спиралью с правого верхнего угла: 1 2 6 3 5 7 4 8 9
C++ Составить массив, содержащий минимальные элементы каждой строки http://www.cyberforum.ru/cpp-beginners/thread549298.html
дана матрица А(5,6).составить массив,содержащий минимальные элементы каждой строки.данные считывать из файла,результат вывести в файл (программа почему то неправильно работает,зависает при...
C++ уравнение 5 класса Уравнение для пятиклассников представляет собой строку длиной 5 символов. Второй символ строки является либо знаком '+' (плюс) либо '-' (минус), четвёртый символ — знак '=' (равно). Из первого,... подробнее

Показать сообщение отдельно
Buckstabue
175 / 124 / 6
Регистрация: 12.01.2012
Сообщений: 624
16.04.2012, 18:07
nega_ufa, в моём алгоритме строки с 39 по 55 находят при помощи функции rfind() самую правую позицию символа в отдельном слове, и, если эта позиция отличается от текущей, то этот символ повторяется. А на что конкретно ругается компилятор? Если вам нужен код на чистом C, т.е. без C++
То попробуйте копать в сторону функций strtok() + strrchr()
Вначале разбиваете предложение на слова, затем для каждого символа в слове выполняете функцию strrchr( текущее_слово, искомый символ ), обратите внимание на буковку r. Эта функция возвращает указатель на самый правый искомый символ, если этот возвращаемый указатель сравнить с текущей позицией, то можно узнать, есть ли такой же символ правее в текущей строке. Узнать позицию символа в строке можно при помощи арифметики указателей ( символ_в_строке - самый_первый_символ_в_строке )

Добавлено через 12 минут
ps даже можно, по-моему, просто сравнивать указатели, например
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
WORD_LEN = strlen( word );
int hasTwo = 0; // флаг наличия двух одинаковых символов в строке
for ( size_t i = 0; i < WORD_LEN; ++i )
{
    if ( &(word[i]) != strrchr( word, word[i] ) )
       {
        // здесь код, что нужно делать, когда слово имеет два одинаковых символа
            hasTwo = 1;
            break;
       }
   
}
 if ( hasTwo != 0 )
       printf("%s\n", word);
но это только в теории, на практике не проверял
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru