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

Обработка строки Char - C++

Восстановить пароль Регистрация
 
PapaKarlito
0 / 0 / 0
Регистрация: 03.10.2013
Сообщений: 24
14.11.2013, 03:38     Обработка строки Char #1
Задание:
Пользователь вводит текст(рандомные символы).
Найти наибольшую группу символов состоящих не из букв и вывести начальную позицию этой группы.

Никак не могу придумать как это оптимальнее сделать.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.11.2013, 03:38     Обработка строки Char
Посмотрите здесь:

строки типа char C++
C++ Строки с типом char * в С++
Запись строки char в массив char C++
Строки char и магия C++
C++ перевод строки CHAR
Запись элемента строки в char C++
C++ Ввод строки char с пробелами
Преобразование char в char* или разделить на две строки C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
StackOverflow
All rights reserved.
91 / 81 / 5
Регистрация: 03.08.2013
Сообщений: 258
14.11.2013, 07:46     Обработка строки Char #2
Чтобы придумать оптимальное решение, нужно сперва придумать решение)
Ну вот как то так попробуйте. Сам я это код не компилировал, всё на бумаге и в голове. Проверьте, отпишитесь пожалуйста.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
#include <iostream>
 
using namespace std;
 
int main()
{
    const int size = 20;
    char stringToProcess[ size ];
  
    cin.getline( stringToProcess, size, '\n' );
 
    int currentIndex = 0;
    int arrayOfResults[ size ] = { 0 };
    int tallying = 0;
 
    char * stringPtr = stringToProcess;
    int * resultsPtr = arrayOfResults;
 
    do {
        checkString( currentIndex, tallying, stringPtr, resultsPtr)
    } while ( currentIndex != size - 1 )
 
    cout << arrayOfResults[ findMax( arrayOfResults, size ) ] << endl;
 
    return 0;
}
 
void checkString( int & index, int & tallying, const char * ourString, int * results )
{
    if ( checkCharracter( ourString[ index ] ) == true )
    {
        results[ index - tallying ] = tallying;
        index++;
    }
    else
    {
        tallying++;
        checkString( index + 1, tallying, ourString, results )
    }
}
 
bool checkCharracter( const char symbol )
{
    if ( ( ( static_cast<int>( symbol ) >= 65 ) && ( static_cast<int>( symbol ) <= 90 ) ) || ( ( static_cast<int>( symbol ) >= 97 ) && ( static_cast<int>( symbol ) <= 122 ) ) )
        return true;
    else
        return false;
}
 
int findMax( const int * results, const int size )
{
    int max = results[ 0 ];
    int index = 0;
    
    for ( int i = 1; i < size; i++ )
    {
        if ( results[ i ] > max )
        {
            max = results[ i ];
            index = i;
        }
    }
 
    return index;
}
Yandex
Объявления
14.11.2013, 07:46     Обработка строки Char
Ответ Создать тему
Опции темы

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