Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/4: Рейтинг темы: голосов - 4, средняя оценка - 4.50
0 / 0 / 0
Регистрация: 03.12.2009
Сообщений: 8

строки, именно строки

03.12.2009, 10:32. Показов 816. Ответов 4

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

Напишите пожалуйста код,хоть полу рабочий,просто я со строками полный ноль. на С
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
03.12.2009, 10:32
Ответы с готовыми решениями:

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

Сгенерировать две произвольные строки и определить, является ли какое-либо слово первой строки частью второй строки
Сгенерировать две произвольные строки и определить, является ли какое-либо слово первой строки частью второй строки. 1. Я дуб дубом,даже...

Добавить строки, начиная со строки К1 и до строки К2, в динамический массив строк
Есть динамический массив строк. Заполняется, т.е. размер его уже известен будет. Но дальше нужно сделать задание: "Добавить строки,...

4
MCSD: APP BUILDER
 Аватар для IT_Exp
8795 / 1074 / 104
Регистрация: 17.06.2006
Сообщений: 32,602
03.12.2009, 10:51
используй функцию strtok для разбивки строки с учётом разделителей
(код писать не буду, ибо спать хочу ((: )
0
Автор FAQ
 Аватар для -=ЮрА=-
6614 / 4256 / 401
Регистрация: 08.08.2009
Сообщений: 10,325
Записей в блоге: 24
03.12.2009, 12:37
Вот рабочий код на С
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;
}
Миниатюры
строки, именно строки  
1
 Аватар для Gravity
577 / 571 / 65
Регистрация: 29.01.2009
Сообщений: 1,274
03.12.2009, 14:21
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;
}
1
0 / 0 / 0
Регистрация: 03.12.2009
Сообщений: 8
10.12.2009, 15:42  [ТС]
Всем спасибо! Хороший форум и хорошие форумчане)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
10.12.2009, 15:42
Помогаю со студенческими работами здесь

Удалить строки динамической матрицы, начиная со строки К1 и до строки К2
Сформировать динамический двумерный массив, заполнить его случайными числами и удалить строки, начиная со строки К1 и до строки К2 вот...

Удалить строки, начиная со строки К1 и до строки К2 (динамические массивы)
#include &lt;iostream&gt; #include &lt;ctime&gt; #include &lt;stdlib.h&gt; using namespace std; int main() { srand((int)time(0)); ...

Ввести две символьных строки. Выполнить поиск второй строки в первой и вывести номер позиции первой строки, с которой вторая строка содер-жится в ней
Ввести две символьных строки. Выполнить поиск второй строки в первой и вывести номер позиции первой строки, с которой вторая строка...

Чтение через fscanf_s части строки с пробелом (и запись этой же строки)
нужно записать в файл строку, содержащую через табуляцию int, char, char, char, float, int. Далее необходимо из такой же строки вывести...

Как считать строки из файла, если там больше одной строки?
Как считать строки из файла в массив. Если в файле одна строка, то нет проблем, но если несколько, то при использовании функции fgets ...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США. Нашел на реддите интересную статью под названием «Кто-нибудь знает, где получить бесплатный компьютер или. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru