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

Обработка слов строки без массива слов - C++

Восстановить пароль Регистрация
 
Act1v3
0 / 0 / 0
Регистрация: 07.01.2014
Сообщений: 25
22.03.2014, 14:29     Обработка слов строки без массива слов #1
В программе нужно обработать введенную строку , ввести некоторую разменость и вывести слова , рамерность которых больше за введенную .
Программа то готовая , но нужно её реализовать без массива слов . Зараннее благодарен
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
#include "stdafx.h"
#include <iostream>
#include <cstdlib>
#include <cstdio>
#include <string>
using namespace std;
char s[100];                    // исходная строка
const int n=20;             
typedef char array[n][n];
array arr={0};              // масив слов
void processing_string (char *);        // обработка строки 
int create_words(char *, array);    // определение слов 
void words(array, int);// поиск слов
int main()
{   puts("ENTER STRING:");  gets(s);    
processing_string (s);          
system("pause");
}
 
void processing_string(char *str)
{   int i=0;                    
char **st=&str;
i=create_words(*st, arr);       
words(arr, i);          
}
 
int create_words(char *st, array mas)
{    int ii=0;
char *delimiter="., ";          
char *p;                    
cout<<"LIST OF WORDS:\r"<<endl;
p=strtok(s,delimiter);          
while (p!=NULL)             
{   strcpy(mas[ii],p);          
puts(p);                
ii++;                   
p=strtok(NULL,delimiter);       
}
  return ii;                    
}
 
void words(array mas, int ii)
{   int length; 
cout << "WRITE LENGTH: ";
cin>>length;
cout << "NEW LIST OF WORDS: "<<endl;
for (int j=0; j<ii; j++)            
if (strlen(mas[j])>=length)
{   cout << mas[j] << " ";  
    cout << "\n";
}
}
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.03.2014, 14:29     Обработка слов строки без массива слов
Посмотрите здесь:

Построить диаграмму длины слов, входящих в текст, содержащий от 5 до 10 слов. C++
C++ Обработка строк\слов. C.
C++ Дан массив слов. Определить количество слов массива, которые не являются «перевертышем».
C++ Функция, получает строку слов и рзделителей, а на выходе имеет массив слов из строки и количество этих слов
C++ Дана последовательность слов. Найти кол-во слов начинающихся с d и кончающихся буквой w
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
MicM
 Аватар для MicM
820 / 487 / 90
Регистрация: 29.12.2009
Сообщений: 1,097
Завершенные тесты: 1
22.03.2014, 14:41     Обработка слов строки без массива слов #2
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
#include <iostream>
#include <cstring>
#include <cctype>
using namespace std;
 
int main()
{
    const int maxLength = 128;
    char str[maxLength];
    cout <<"Str: ";
    cin.get(str,maxLength);
    int size;
    cout <<"Size: ";
    cin >> size;
    int i = 0;
    int length = strlen(str);
    while (i<length)
    {
        if (isalpha(str[i]))
        {
            char temp[maxLength] = "";
            int k = 0;
            while (i<length && isalpha(str[i]))
                temp[k++] = str[i++];
            temp[k] = '\0';
            if (k > size)
                cout <<temp <<endl;
        }
        else ++i;
    }
    return 0;
}
Act1v3
0 / 0 / 0
Регистрация: 07.01.2014
Сообщений: 25
22.03.2014, 18:36  [ТС]     Обработка слов строки без массива слов #3
Извините , но разве массив temp не массив слов?
MicM
 Аватар для MicM
820 / 487 / 90
Регистрация: 29.12.2009
Сообщений: 1,097
Завершенные тесты: 1
22.03.2014, 19:01     Обработка слов строки без массива слов #4
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Act1v3, конечно нет.
Это массив символов. С помощью него формируется очередное слово и выводится на экран.

Добавлено через 5 минут
Если и это принципиально, то вот, без этого массива символов:
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
#include <iostream>
#include <cstring>
#include <cctype>
using namespace std;
 
int main()
{
    const int maxLength = 128;
    char str[maxLength];
    cout <<"Str: ";
    cin.get(str,maxLength);
    int size;
    cout <<"Size: ";
    cin >> size;
    int i = 0;
    int length = strlen(str);
    while (i<length)
    {
        if (isalpha(str[i]))
        {
            int j = i;
            int k = 0;
            while (i<length && isalpha(str[i]))
            {
                ++i;
                ++k;
            }
            if (k > size)
            {
                for (int index=j; index<i; index++)
                    cout <<str[index];
                cout <<endl;
            }
        }
        else ++i;
    }
    return 0;
}
Act1v3
0 / 0 / 0
Регистрация: 07.01.2014
Сообщений: 25
22.03.2014, 19:05  [ТС]     Обработка слов строки без массива слов #5
действительно , невнимательно проанализировал код .
благодарен вам .
Yandex
Объявления
22.03.2014, 19:05     Обработка слов строки без массива слов
Ответ Создать тему
Опции темы

Текущее время: 04:12. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru