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

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

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

строки, именно строки - C++

03.12.2009, 10:32. Просмотров 554. Ответов 4

Дан текст, определить, сколько в нем предложений. Вывести на экран самое длинное.

Напишите пожалуйста код,хоть полу рабочий,просто я со строками полный ноль. на С
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.12.2009, 10:32     строки, именно строки
Посмотрите здесь:

1) Структура 2) строки нужно Именно на Си, а не на Си++ - C++
1) Даны стоимости двух товаров в рублях и копейках. Найти суммарную стоимость покупки и рассчитать сдачу. 2) Удалить все символы в...

Указать номер строки, максимально удаленной от первой строки заданной матрицы - C++
Задание: Расстояние между k-й и 1-й строками квадратной матрицы А опеределяется как r = сумма от j=1 до N от (abs(akj)*abs(a1j)). Указать...

Прибавить ко всем элементам каждой строки максимальное значение этой строки - C++
добрый вечер! Помогите пожалуйста доработать код! Изменить текущий массив, прибавив ко всем элементам каждой строки максимальное...

c++ Даны две строки: S1 и S2. Определить количество вхождений строки S2 в строку S1. - C++
Очень надеюсь на помощь

Скопировать второе слово каждой строки в начало следующей строки - C++
Привет, прошу помощи! Заранее спасибо! Индивидуальное задание: Скопировать второе слово каждой строки в начало следующей строки ...

Упорядочить строки матрицы лексикографически по неубыванию первых k элементов строки. - C++
Помогите решить задачу, пожалуйста Упорядочить строки матрицы D ( m, n) лексикографически по неубыванию первых k элементов строки. ...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Rififi
2359 / 1054 / 44
Регистрация: 03.05.2009
Сообщений: 2,656
03.12.2009, 10:51     строки, именно строки #2
используй функцию strtok для разбивки строки с учётом разделителей
(код писать не буду, ибо спать хочу ((: )
-=ЮрА=-
Заблокирован
Автор FAQ
03.12.2009, 12:37     строки, именно строки #3
Вот рабочий код на С
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
#include <windows.h>
#include <stdio.h>
 
char * str = (char *)malloc(sizeof(char));
//Организуем ввод текстового блока 
//до того как будет введен символ ch_end
char * enter_text(char * str, char ch_end);
 
int  * nWords = (int *)malloc(sizeof(int));
 
void main()
{
    int nSentences = 0;
    printf("\tEnter text block\r\n");
    str = enter_text(str, '\n');
    //Заменяем все знаки ! ? на точки
    //Далее при анализе под предложением 
    //понимаем совокупность символов с точкой вконце
    int sLen = strlen(str);
    for(int i = 0; i < sLen; i++)
    {
        if(str[i] == '!' || str[i] == '?' )
            str[i] = '.';
    }
    char * chBuf = strchr(str,'.');
    if(chBuf)
    {
        i = 0;
        nWords[nSentences] = strlen(str) - strlen(chBuf);
        chBuf = strchr(chBuf + 1,'.');
        nSentences++;
        nWords = (int *)realloc(
                (void *)nWords,(nSentences + 1)*sizeof(int));
        while(chBuf)
        {
            nWords[nSentences] = strlen(str) - strlen(chBuf) - nWords[nSentences - 1];
            if(nWords[i] < nWords[nSentences])
                i = nSentences;
            chBuf = strchr(chBuf + 1,'.');
            nSentences++;
            nWords = (int *)realloc(
                    (void *)nWords,(nSentences + 1)*sizeof(int));
        }
        printf("Text consist from %d sentences\r\n",nSentences);
        printf("Sentence with max word amount %d\r\n",i + 1);
    }
    else
        printf("Text doesn't contain any sentences");
    printf("Press NUM1 to enter new text\r\n");
    scanf("%d",&i);
    if(i == 1)
        main();
}
 
char * enter_text(char * str, char ch_end)
{
    if(str)
    {
        int i = 0;
        while((str[i] = getchar()) != ch_end)
        {
            i++;
            str = (char *)realloc((void *)str,sizeof(char)*(i + 1));
        }
    }
    return str;
}
Миниатюры
строки, именно строки  
Gravity
562 / 556 / 39
Регистрация: 29.01.2009
Сообщений: 1,274
03.12.2009, 14:21     строки, именно строки #4
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
#include <stdio.h>
#include <string.h> 
 
int
main(void)
{
    int nsent, maxsent;
    char s[4096], sent[4096], *p;
    char *delim = ".?!";
    
    printf("Введите текст: ");
    if(fgets(s, sizeof(s), stdin) == NULL || *s == '\n')
        return 1;
    
    if(p = strrchr(s, '\n'))
        *p = '\0';
    
    nsent = maxsent = 0;
    for(p = s; p = strtok(p, delim); p = NULL) {
        nsent++;
        if(strlen(p) > maxsent) {
            maxsent = strlen(p);
            strcpy(sent, p);
        }
    }
    printf("В тексте %d предложений(ия)(ие).\n"
           "Самое длинное предложение: %s\n", nsent, sent);
 
    return 0;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.12.2009, 15:42     строки, именно строки
Еще ссылки по теме:

Упорядочить строки матрицы D (m. n) Лексикографически по неубыванию первых k элементов строки - C++
Помогите решить задачу C++ пожалуйста, пожалуйста Упорядочить строки матрицы D (m. n) Лексикографически по неубыванию первых k...

Даны три строки: S1, S2, S3. Заменить в строке S1 первое вхождение строки S2 на S3 - C++
Даны три строки: S1, S2, S3. Заменить в строке S1 первое вхождение строки S2 на S3.

Переставить строки матрицы по возрастанию максимальных элементов каждой строки - C++
Дана целочисленная матрица м*н. Переставить строки матрицы по возрастанию максимальных элементов каждой строки.

Описать функцию, что добавляет N символов строки S2 в конец строки S1 - C++
Помогите пожалуйста с выполнением лабораторной работы. Задание: 1. Разработать и реализовать функцию на языке С. 2. Провести ее...

Добавить в конец первой строки, последние n2-n1 слов второй строки - C++
помогите пожалуйста! Даны две строки. Пусть n1 - число слов в первой строке, а n2 - во второй (n1&lt;n2). Добавить в конец первой строки,...

Отбросить от строки последние N символов и вывести оставшуюся часть строки - C++
:help: 1. Лабораторная работа №1. Ввод-вывод в стандартные файлы. Задание: разработать программу с использованием базовых системных...


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

Или воспользуйтесь поиском по форуму:
novi4ek_
0 / 0 / 0
Регистрация: 03.12.2009
Сообщений: 8
10.12.2009, 15:42  [ТС]     строки, именно строки #5
Всем спасибо! Хороший форум и хорошие форумчане)
Yandex
Объявления
10.12.2009, 15:42     строки, именно строки
Ответ Создать тему
Опции темы

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