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

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

Войти
Регистрация
Восстановить пароль
 
Ghost03080
1 / 1 / 0
Регистрация: 22.09.2011
Сообщений: 31
#1

строки и траблы с ними - C++

23.09.2011, 01:06. Просмотров 580. Ответов 1
Метки нет (Все метки)

Задача: с клавиатуры вводиться отрывок из нескольких строк. Требуется напечатать строку, в которой больше всего слов.

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
#include<iostream>
#include<cstring>
 
using namespace std;
 
//нахождение количества слов
int kol(char*s)
{
    int k=0;
    int i=0;
    while(s[i]!='\0')
    {
        if (s[i]=='_')
            k++;
        i++;
    }
    return k;
}
 
//функция, для ввода строк
void striga(int h, int m, char *ss)
{
    int r=0;
    int j=0;
    while (r==123)
    {
        char *s=new char[];
        cin>>s;
        if(s[j]=='.')
            r=123;
        h=kol(s);
        if (h>m)
        {
            m=h;
            strcpy (ss, s);
        }
        delete[]s;
        s=NULL;
    }
}
 
int main()
{
    int h=0;
    int m=0;
    char *ss=new char[];
    striga(h,m,ss);
    cout<<ss;
    delete[]ss;
    ss=NULL;
    return 0;
}
компилируется нормально, но начинаются траблы при попытке запустить

Добавлено через 45 минут
одну ошибку нашел
в 27 строке r!=123
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.09.2011, 01:06
Здравствуйте! Я подобрал для вас темы с ответами на вопрос строки и траблы с ними (C++):

Строки и иже с ними - C++
Как бы странно не звучало, но:я не могу нормально очистить строку в C++ пытаюсь присвоить признак конца строки первому символу...

Строки и операции над ними - C++
Нужно ввести строку и положить в два разных массива каждую четную букву строки и каждую 3 букву в строке. Кто подскажет, как реализовать...

Строки с действительными числами, операции над ними - C++
Напишите программу, которая вводит 4 строки, представляющие значения с плавающей точкой, преобразует строки, удваивая значения, суммирует и...

Строки с действительными числами, операции над ними - C++
Напишите программу, которая вводит 4 строки, представляющие значения с плавающей точкой, преобразует строки, удваивая значения, суммирует и...

Объединить две строки и добавить между ними пробел - C++
Здраствуйте... у меня проблема со строками... есть 2 строки и их нужно объединить в m3 + добавить между ними пробел char...

Почему в конце символьной строки появляются разные символы, и что с ними делать? - C++
В строке, содержащей последовательность слов, найти конец предложения, обозначенный символом &quot;точка&quot;. В следующем слове первую строчную...

1
-=ЮрА=-
Заблокирован
Автор FAQ
23.09.2011, 10:51 #2
Ghost03080, зачем хранить все строки, храним строку с макс числом слов и сравниваем с числом слов во вновь вводимой, нужено всего две строки
Вот на плючах
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
#include <iostream>
#include <cstring>
#include <conio.h>
 
using namespace std;
 
int GenNumWords(const char *s);
 
int main()
{
    int nMax;//макс кол-вом слов
    int nCur;//кол-вом слов в текущей строке
    char str[1025];//Хранит строку с макс кол-вом слов
    char buf[1025];//Хранит текущую строку
    cout<<"Enter num of input strings\r\n";
    int nStr;cin>>nStr;getchar();//Enter после ввода всё портит
    cout<<"Enter input string #"<<1<<"\r\n";
    cin.getline(str,1024);
    nMax = GenNumWords(str);
    for(int i = 2;i <= nStr;i++)
    {
        cout<<"Enter input string #"<<i<<"\r\n";
        cin.getline(buf,1024);
        nCur = GenNumWords(buf);
        if(nMax < nCur)
        {
            nMax = nCur;
            sprintf(str,"%s",buf);
        }
    }
    cout<<"String with max num of words\r\n";
    cout<<str<<"\r\n";
    cout<<"Press any key to continue\r\n";
    return 0;
}
 
int GenNumWords(const char *s)
{
    int nWords = 0;
    int sLen = strlen(s);
    char * str = new char[sLen + 1];
    sprintf(str,"%s",s);
    str[sLen] = '\0';
    //Разделители слов строка с несколькими предложениями может быть
    char delim[] = " ,.!?";
    char * buf = strtok(str,delim);//Бьём str на токены (слова)
    while(buf)
    {
        nWords++;
        buf = strtok(NULL,delim);
    }
    delete [] str;
    return nWords;
}
Результат работы
Enter num of input strings
4
Enter input string #1
dfh hdhg hdhg jgjgjgjgjgjgjgjg
Enter input string #2
jgjgd, kkh!Pdj jdjg jg.
Enter input string #3
gfkh kfkghkk kkgkf
Enter input string #4
hkkhhkflkghkhk kfllhkfklhkfkhlfhk
String with max num of words
jgjgd, kkh!Pdj jdjg jg.
Press any key to continue
Press any key to continue

jgjgd, kkh!Pdj jdjg jg. - хоть и не сама длинная но число слов в ней 5 больше чем во всех остальных
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.09.2011, 10:51
Привет! Вот еще темы с ответами:

Соединить строки, вставить между ними соединительное слово и удалить один вопросительный знак - C++
аны две строки с вопросительными знаками в конце. Соединить их ,вставить между ними соединительное слово и удалить один ВОПРОСИТЕЛЬНЫЙ...

Дано три матрицы,найти самые большие элементы строки и провести с ними математические исчисления - C++
Доброго времени суток всем! Мне необходимо решить задачу однако я даже понять ее не в состоянии.Вот сама задача: Дано три матрицы А(5,2)...

Скорость первого автомобиля V1 км/ч, второго — V2 км/ч, расстояние между ними S км. Определить расстояние между ними через T часов, если автомобили пе - C++
Скорость первого автомобиля V1 км/ч, второго — V2 км/ч, расстояние между ними S км. Определить расстояние между ними через T часов, если...

Как обрезать эффективно часть строки, составляющую последние символы "/" и следующие за ними символы? - C++
здравствуйте, есть код, обрезающий во входной строке часть составляющую последние символы &quot;/&quot; и следующие за ними символы: std::string...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

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