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

Задача на строки - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ определите абстрактный базовый класс Person http://www.cyberforum.ru/cpp-beginners/thread410104.html
определите абстрактный базовый класс Person,содержащий поля "пол","возраст". Затем определите производный класс Student, описывающий типичного студента (курс, группа, номер в журнале). В заключении выведите из класса student класс GradStudent, описывающий типичного аспиранта (средний балл). Проинициализируйте через конструктор поля классов данными.Объявите экземпляр класса GradStudent.Выведите...
C++ Вывод даты С++. В общем как на С++, вывести текущую дату? Вопрос наверно глупый, тем более интерфейс реализован в командной строке. В справке VS нашел только для C# и VB. Но все же надо.=) если есть альтернативные способы буду рад совету. ЗЫ Конкретно надо вывести дату создания объекта. http://www.cyberforum.ru/cpp-beginners/thread410103.html
фрагмент по массиву C++
помогите с фрагментом где нужно найти строку содержащую минимальный элемент матрицы(5.3),не пойму как это вывести..
C++ Можно заменить C на C++ ?
Здравствуйте! Необходимо изучить C, чтобы далее изучить Objective-C и писать большие программы под Iphone, Mac, IOS. Но нормальных книг по C для начинающего не нашел. Можно ли заменить его C++'ом ?
C++ Двоичный файл. Его создание, запись, чтение, обработка. http://www.cyberforum.ru/cpp-beginners/thread410070.html
Написать программу которая создает двоичный файл. Пользователь заполняет его средствами программы действительными числами. Вывести содержимое файла. Найти произведение компонентов файла и сумму квадратов компонентов файла.
C++ класс string товарищи,пишу лабу,простенькую,в принципе,но почему-то фэйлюсь. в ведённой строке за один просмотр найти все слова,состоящие только из цифр.в новой строке поставить их на первые места,а затем все остальные слова. символы разделители -- только пробелы. вот,что я написал,почему-то перескакивает при записи в буфер,поэтому результирующая строка неверная. #include <iostream> #include <string>... подробнее

Показать сообщение отдельно
AlexMind
0 / 0 / 0
Регистрация: 29.10.2011
Сообщений: 9

Задача на строки - C++

17.12.2011, 23:04. Просмотров 305. Ответов 0
Метки (Все метки)

Всем доброго времени суток.
Возникла вот такая проблема: при запуске нижеизложенного кода задачи - зацикливается вывод, и никак не могу понять-где ошибка. Прошу помочь. Заранее благодарю.

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
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
//С клавиатуры вводится строка символов, представляющая собой некоторый отрывок литературного произведения. 
//Определить и вывести на экран количество предложений в нем, а также сами предложения.
 
#include<iostream>
#include<cstring>
using namespace std;
int main ()
{
    setlocale(LC_ALL,".1251");
    char text [1001]; //максимальное кол-во символов текста
    char predlmas [100][1001]; //массив предложений, где 100 - максимальнок кол-во предложений, 1001- максимальное кол-во символов в предложении
 
    cout<<"Введите текст : "<< endl;
 
    cin.get(text, sizeof text); //чтение текста с клавиатуры
 
    int textlen;
    textlen=strlen(text); //определение длины текста
 
    int npredl=0; //обнуляем счетчик кол-ва предложений
    int predllen=0; //обнуляем счетчик длины предложения
 
    //в цикле пробегаемся по всем символам текста
    for(int i=0;i<textlen;i++)
    {
        if((text[i]=='.' || text[i]=='?' || text[i]=='!') && predllen>0) //если встречаемый символ-точка,впр или вскл и длина предложения больше 0,то
        {
            while((text[i]=='.' || text[i]=='?' || text[i]=='!') && i<textlen) //пока встречаемый символ-это точка впр или воскл
            {
                predlmas[npredl][predllen]=text[i]; //добавляем его в конец предложения
                i++; //увеличиваем счетчик символов
                predllen++; //увеличиваем длину предложения
            }
            
            if((i++)==' ') //если следующий за точкой символ - пробел,то
            {   
                predlmas[npredl][predllen]='\0'; //т.к. предложение закончилось добавляем последним символом-ноль
                while(text[i]==' ') //пропускаем этот пробел
                {
                    i++;
                }
            }
            npredl++; //увеличиваем счетчик кол-ва предложений (переходим на следующее предложение)
            predllen=0; //обнуляем длину предложения
        }
        else //иначе если встречаемый символ не точка,впр или воскл ,то
        {
            if(text[i]!='.' && text[i]!='?' && text[i]!='!')
            {
                predlmas[npredl][predllen]=text[i]; //записываем символ в массив символов одного предложения
                predllen++; //увеличиваем длину предложения
            }
        }
        
    }
 
    //Если после того, как мы пробежались по всем символам текста,
    //и оказалось, что длина текущего предложения больше нуля
    //(это возможно только в случае, когда предложение не заканчивается
    // точкой,впр или вскл), то
    if (predllen > 0)
    {
        predlmas[npredl][predllen] = '\0'; //добавляем нулевой символ в конец текущего предложения и
        npredl++; //увеличиваем счетчик предложений на единицу
        predllen = 0; //обнуляем длину предложения
    }
 
    cout << "Предложения : " << endl;
    cout << endl;
 
    cout << npredl << endl; //выводим кол-во предложений в тексте
    setlocale(LC_ALL,".866");
    for(int i=0;i<npredl;i++)  //выводим предложения, пробегаясь по строкам двумерного массива
    {
        cout <<"№ " << i+1 << "  ";
        cout << predlmas[i] <<"."<< endl;  
    }
 
    return 0;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru