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

Функция, получает строку слов и рзделителей, а на выходе имеет массив слов из строки и количество этих слов - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Шаблонный клас и странности с его функцией http://www.cyberforum.ru/cpp-beginners/thread751299.html
Здравствуйте! Тут у меня маленькая проблемка. Вот здесь описание класа и одной из его функций class volume: public vector< vector< vector<_obj> > > { public: vector<_obj>& getColumn(CoordType x, CoordType z) { return at(x).at(z); }
C++ Обращение к ячейкам памяти другой программы Здравствуйте, если кто знает, существует программа ArtMoney, которая позволяет изменять различные значения в памяти определённых процессов. Интересует, по какому принципу это происходит и как можно защитить процесс от внедрения и изменения ячеек памяти. Очень прошу помочь. http://www.cyberforum.ru/cpp-beginners/thread751288.html
считывание данных из файла в C++ C++
В файле находиться следующяя информация: Name AIXTRON HANKORE_ENVM_TECH BOIRON 01.01.2009 4.78 0.039 17.34 02.01.2009 4.71 0.039 17 05.01.2009 4.77 0.043 17 06.01.2009 4.65 0.043 17.09 ... Первая строка – названия, первый столбец даты, все остальное данные (double). Мне нужно считать данные в виде матрици. Буду благодарна за любую помощь!
C++ Для идеально-сбалансированного дерева поменять местами минимальный и максимальный элементы
Здравствуйте! Помогите пожалуйста написать функцию для нахождения в идеально-сбалансированном дереве минимального и максимально элемента и смены их местами.
C++ Как реализовать ожидание потоком без Win32? http://www.cyberforum.ru/cpp-beginners/thread751260.html
В одном решении у меня два проекта: типа "Приложение MFC" (интерфейс работы с юзером) и типа "Пустой проект" (для запуска рабочих потоков). Иногда из интерфейса юзера надо приостановить кипучую деятельность моих потоков, поэтому там устанавливается значение глобальной константы: Pause = true; , а потоки иногда анализирует это значение: if(Pause) WaitForSingleObject (hEventsToChild,...
C++ Вычислить и вывести на экран значение: Максимального элемента массива и в каждой строке Переведите пожалуйста код на C++.Заранее большое спасибо uses crt; var m:integer; i,j:integer; matrix:array of integer; begin for i:=1 to 4 do begin for j:=1 to 4 do matrix:=random(50); подробнее

Показать сообщение отдельно
booker
 Аватар для booker
23 / 23 / 2
Регистрация: 21.11.2012
Сообщений: 106
02.01.2013, 20:43     Функция, получает строку слов и рзделителей, а на выходе имеет массив слов из строки и количество этих слов
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
85
#include<iostream>
 
using namespace std;
 
int numb_words(char*);// функция вычисления кол-ва слов в строке
bool isrusalpha(char*);// isalpha() для кирилицы
 
int main()
 
{
    setlocale(LC_CTYPE, "rus");
    char* text = {"Эта программа считает слова и записывает их в массив"};
    char** arrwords=new char*[numb_words(text)];
    int w=0; //счётчик слов
    int l=0; //счётчик букв в слове
    bool newword = false;
    
    //выделяем память для слов 
    for(int n=0;n<=strlen(text);n++)
    {
        if(isrusalpha(text+n)) {l++;newword=true;}
        
        if((!isrusalpha(text+n)||n==(strlen(text))-1)&&newword)
        {
        //cout<<"new word "<<w<<" "<<"letters " <<l<<endl;
        arrwords[w]=new char[l];
        l=0;w++;newword=false;}
    }
 
    //записываем слова в строки массива указателей на строки
    l=0;
    w=0;
    
    for(int n=0;n<=strlen(text);n++)
    {
        if(isrusalpha(text+n)) 
        {
        *(*(arrwords+w)+(l++))=*(text+n);
        newword=true;
        }
        if((!isrusalpha(text+n)||n==(strlen(text))-1)&&newword)
        {
        *(*(arrwords+w)+l)='\0';
        l=0;w++;newword=false;
        }
    }
            
    
    for(int n=0;n<numb_words(text);n++)// выводим массив
    cout<<arrwords[n]<<endl;
    
    delete []arrwords;
    
    cout<<endl<<"Всего слов: "<<numb_words(text)<<endl;
        
    system("pause");
 
    return 0;
}
 
int numb_words(char*str)
    {
        bool newword = false;
        if (strlen(str)==0)
            return 0;
        int count_words;
        count_words=0;
        for(int n=0;n<strlen(str);n++)
        {
        if(isrusalpha(str+n)) {newword=true;}
        
        if((!isrusalpha(str+n)||n==(strlen(str))-1)&&newword)
        {
        count_words++;newword=false;}
        }
        return count_words;
    }
 
bool isrusalpha(char* symb)
{
    if (((*symb)>(-65)&&*symb<0)||(*symb==(-88)||*symb==(-72))) return true;
    else
        if ((*symb>64&&*symb<91)||(*symb>96&&*symb<122)) return true;
    else return false;
}
 
Текущее время: 16:58. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru