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

Вывести на экран из текста только предложения, состоящие из заданного количества слов - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Посоветуйте литературу по С++ http://www.cyberforum.ru/cpp-beginners/thread634673.html
Всем привет. Я знаю что есть тема по выбору литературы для изучения С++ но тут немного другой вопрос. У меня есть уже книга "Джесс Либерти Освой C++ самостоятельно за 21 день" но мне сказали что эта книга больше под Borland а не Visual Studio . например тот же обычный Hello world не работает по примеру данной книги в Visual Studio 2010. можете посоветовать что-то посвежее или как мне в данной...
C++ Строка с неограниченной длиной Господа программеры! Объясните, пожалуйста, что такое char, char * и string. как можно получить строку с неограниченной длиной? //char text="";//tak ne poidet //char *text="";//tak toje ne poidet char text;//rabotaet bolee i menee, no tut ogranichenie 1000 i voopshe kak-to stremno smotritsia SendMessage((HWND)hwnd, WM_GETTEXT, (WPARAM)(BufLen + 1), (LPARAM)(LPCTSTR)text); http://www.cyberforum.ru/cpp-beginners/thread634669.html
C++ Автозапуск программы
Вот решил добавит калькулятор в автозагрузчик системы. Программа есть в списке автозагрузчика но не включается. Вот код #include<iostream> #include<windows.h> using namespace std; float a, b, c, d; char x; void result(); void autoloading(); int main() {
C++ Извлечь числа
Как можно извлечь из стоки xx/xx/xxxx числа? И как извлечь если день/месяц введены как например 01 или 1 и вообще чтобы 'x' являлось числом... #include <iostream> using namespace std; struct date { int d; int m; int y; };
C++ Автозапуск программы http://www.cyberforum.ru/cpp-beginners/thread634621.html
Написал программу добавляющую себя в автозапуск. Программа в автозауске есть, но не включается автоматически в чем проблема? Вот код самой програмы: #include<windows.h> #include <iostream> using namespace std; void autoloading(); int main() { void autoloading(); FreeConsole();
C++ Переменная в пути к файлу Есть код, точнее отрывок: char name; unsigned long size; GetUserName(name,&size); CopyFile("C:\\Users\\!!!\\AppData\\Local\\Google\\Chrome\\User Data\\Default\\Cookies","C:\\cookie_test\\cookies_chrome",true); Вот вопрос, как поставить переменную name вместо трех восклицательных знаков, в пути к фалу. Добавлено через 52 минуты подробнее

Показать сообщение отдельно
-=ЮрА=-
Заблокирован
Автор FAQ
08.08.2012, 17:52     Вывести на экран из текста только предложения, состоящие из заданного количества слов
Цитата Сообщение от bullin2d Посмотреть сообщение
Вывести на экран из текста только предложения, состоящие из заданного количества слов.
bullin2d, тоже как вариант
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
81
82
83
84
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
 
int getNumWordsInSentence(char * sentence);
 
int main()
{
    int nWords        = 0;//áóäåò õðГ*Г*ГЁГІГј ÷èñëî ñëîâ
    int nSentence     = 0;//áóäåò õðГ*Г*ГЁГІГј ÷èñëî ïðåäëîæåГ*ГЁГ©
 
    char inp[1024]    = {0};//ГЃГіГґГґГҐГ° äëÿ ââîäèìîãî ГІГҐГЄГ±ГІГ*
    char out[1024]    = {0};//ГЃГіГґГґГҐГ° äëÿ âûâîäèìîãî ГІГҐГЄГ±ГІГ*
    char sentence[128]= {0};//ГЃГіГґГґГҐГ° äëÿ ïåðäëîæåГ*ГЁГї
    char * sub        = NULL;//ÓêГ*Г§Г*òåëü Г*Г* ïîäñòðîêó Г± ïðåäëîæåГ*ГЁГҐГ¬
    //ÂîçìîæГ*ûå Г°Г*çäåëèòåëè ìåæäó ïðåäëîæåГ*èÿìè
    char **sWords     = NULL;//ÓêГ*çåòåëü Г*Г* Г¬Г*Г±Г±ГЁГў Г± ïðåäëîæåГ*èÿìè ГЁГ§ ГІГҐГЄГ±ГІГ*
    char delim[] = ".!?";
    //Ââîäèì ГІГҐГЄГ±ГІ
    printf("Enter text   : ");scanf("%[^\n]",inp);
    printf("Enter nWords : ");scanf("%d",&nWords);
/*  strcpy
    (
        inp,
        "hello. world is nice. cool day! to be or not to be? very nice day!"
    );
    nWords = 3;*/
    strcpy(out,inp);
    //Ïîäñ÷¸ò Г·ГЁГ±Г«Г* ïðåäëîæåГ*ГЁГ© Гў ГІГҐГЄГ±ГІГҐ
    for
    (
        sub = strtok( out,delim);
        sub != NULL;
        sub = strtok(NULL,delim)
    )
        nSentence = nSentence + 1;
    //Âûäåëÿåì ГЇГ*ìÿòü ïîä ñòðîêè Г¬Г*Г±Г±ГЁГўГ* ïðåäëîæåГ*ГЁГ©
    sWords = (char **)malloc(nSentence*sizeof(char *));
    //Êîïèðóåì ïðåäëîæåГ*ГЁГї Гў Г¬Г*Г±Г±ГЁГў
    nSentence = 0;
    out[0]    = 0;
    for
    (
        sub = strtok( inp,delim);
        sub != NULL;
        sub = strtok(NULL,delim)
    )
    {
        sWords[nSentence] = (char *)malloc(128*sizeof(char *));
        strcpy(sWords[nSentence],sub);
        nSentence = nSentence + 1;
    }
    //ГЋГ±ГІГ*âëåÿì Гў âûõîäГ*îì ГІГҐГЄГ±ГІГҐ Г*ГіГ¦Г*ûå ïðåäëîæåГ*ГЁГї
    while(nSentence)
    {
        strcpy(sentence,sWords[nSentence - 1]);
        if(nWords == getNumWordsInSentence(sentence))
        {
            if(!out[0])
                strcpy(out,sWords[nSentence - 1]);
            else
                strcat(out,sWords[nSentence - 1]);
        }
        nSentence = nSentence - 1;
    }
    printf("Output text : %s\n",out);
    return 0;
}
 
int getNumWordsInSentence(char * sentence)
{
    int nCount  = 0;  //×èñëî ñëîâ Гў ïðåäëîæåГ*ГЁГЁ
    char *word  = {0};//ÓêГ*Г§Г*åòëü Г*Г* ñëîâî ГЁГ§ ГІГҐГЄГ±ГІГ*
    //ÂîçìîæГ*ûå Г°Г*çäåëèòåëè ìåæäó ñëîâГ*ìè
    char delim[] = ",;:- ";
    for
    (
        word = strtok(sentence,delim);
        word != NULL;
        word = strtok(NULL,delim)
    )
        nCount = nCount + 1;
    return nCount;
}
http://liveworkspace.org/code/e309cd...c82238c3e22715
Миниатюры
Вывести на экран из текста только предложения, состоящие из заданного количества слов  
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru