0 / 0 / 0
Регистрация: 16.01.2010
Сообщений: 4
1

Строки, работа с файлами и массивами строк

16.01.2010, 06:08. Показов 1651. Ответов 3
Метки нет (Все метки)

Требуются срочная помощь зачет через 2 часа...

Не хватает 2х лаб... помогите люди добрые кто чем может

Лаба 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
#include "stdafx.h"
#include <iostream>
#include <string>
#include <Windows.h>
using namespace std;
 
 
int _tmain(int argc, _TCHAR* argv[])
{
        setlocale(LC_ALL,"RUSSIAN");
                string word;
                int max_kol=0; 
                int j=0;
        cout << "Введите предложение: "<<endl;
        getline(cin,word);
                for(int i=0; i<word.size(); i++)
                {
                        if (word[i]==' ')
                        {
                                j++;
                        }
                        else j=0;
                        if(max_kol<j)
                        {
                                max_kol=j;
                        }
                }
                cout<<"Максимальное количество пробелов:   "<<max_kol<<endl;
        return 0;
}
Лаба2(работа с файлами и массивами строк):

Написать программу, которая считывает текст из файла и заменяет первую букву каждого слова длиной более 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
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
 
#include <string.h>
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#define N 20
#define G 26
// ПРЕДВАРИТЕЛЬНОЕ ОБЪЯВЛЕНИЕ ФУНКЦИЙ
// Заголовок программы
void Title();
// Ввод предложения
void InpPredl (char predl[]);
// Выделение из предложения
void Select(const char &predl, const char &r);
// Вывод результата
void OutPredl(char *s1, char *s2);
// сортирует слова по алфавиту и тут же выводит
void SortWord(char Str[]);
// из ФАКа киберфорума
void bubbleSortWord(char* a[], long size);
 
 
// ОСНОВНАЯ ФУНКЦИЯ
int main ()
{
        // ОБЪЯВЛЕНИЕ ПЕРЕМЕННЫХ
        char predl[80]; // Введенное предложение
 
        // Заголовок программы
        //Title ();
        // Ввод предложения
        InpPredl (predl);
 
        SortWord(predl);
  getch();
        
}
// ОПИСАНИЕ ИСПЛЬЗУЕМЫХ ФУНКЦИЙ
// Заголовок программы
void Title()
{
        //clrscr ();
        puts (" Laboratornoe zadanie №8");
        puts (" vo vvedennom predlogenii raspologite slova");
        puts (" v obratnoi posledovatelnosti.");
        puts (" porjadok sledovanija znakov prepinanija ne menjat.");
        puts (" v predlogenii ispolguutcja russkie bukvbl i znaki. \n");
}
// Ввод предложения
void InpPredl(char *s)
{
        puts(" Vvedite predlogenie \n");
        //strcpy (s," Verite li bl, 4to zada4a reshena?");
        strcpy (s,"test abc cba!");
        printf("sourse: %s",s);
        // gets (s);
}
void SortWord(char Str[])
{
        char word[N][N]; // Массив слов в предложении
        char *ptr[N], *token;
        int  counter=0;
 
        token = strtok (Str, "`!;:,.?- ");
        while  (token  !=NULL)
        {       /* вставляет код для обработки символа в цикле */
        //      printf("\n%s", token);
                strcpy (word[counter++],token);
                token = strtok(NULL,"`!;:,.?- ");
                /* берет следующий символ */
        }
        for (int i=0; i<counter; i++)
                ptr[i]=word[i];
 
        bubbleSortWord(ptr,counter);
                // Вывод результата
                printf("\nResult: ");
        for (int i=0; i<counter; i++)
                printf("%s ",ptr[i]);
}
 
// из ФАКа киберфорума
void bubbleSortWord(char* a[], long size) {
        long i, j;
        char* x;
 
        for( i=0; i < size; i++) {            // i - номер прохода
                for( j = size-1; j > i; j-- ) {     // внутренний цикл прохода
                //      Возвращает < 0, если str1 меньше str2; > 0,
                // если str1 больше str2, и 0, если они равны
                        if ( strcmp(a[j-1],a[j]) > 0) {
                                x=a[j-1]; a[j-1]=a[j]; a[j]=x;
                        }
                }
        }
}
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
16.01.2010, 06:08
Ответы с готовыми решениями:

Работа с файлами и массивами строк
Помогите пожалуйста :(:wall: Нужно написать программу, которая считывает текст из файла и...

Строки. Функции обработки строк. Работа с файлами
1.Получить от пользователя строку текста и Определить общую длину слов на нечётных позициях в...

Строки. Функции обработки строк. Работа с файлами
1. Получить от пользователя строку текста и Подсчитать количество пробелов в строке. Вывести...

Работа с файлами и массивами
Помогите, пожалуйста, нужно, чтобы прога прочитала таблицу из блокнота ,отсортировала по...

3
182 / 183 / 55
Регистрация: 08.04.2009
Сообщений: 1,309
16.01.2010, 06:31 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
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
86
87
88
89
90
91
92
93
94
95
#include <string.h>
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <ctype.h>
#define N 20
#define G 26
// ÏÐÅÄÂÀÐÈÒÅËÜÍÎÅ ÎÁÚßÂËÅÍÈÅ ÔÓÍÊÖÈÉ
// Çàãîëîâîê ïðîãðàììû
void Title();
// Ââîä ïðåäëîæåíèÿ
void InpPredl (char predl[]);
// Âûäåëåíèå èç ïðåäëîæåíèÿ
void Select(const char &predl, const char &r);
// Âûâîä ðåçóëüòàòà
void OutPredl(char *s1, char *s2);
// ñîðòèðóåò ñëîâà ïî àëôàâèòó è òóò æå âûâîäèò
void SortWord(char Str[]);
// èç ÔÀÊà êèáåðôîðóìà
void bubbleSortWord(char* a[], long size);
 
 
// ÎÑÍÎÂÍÀß ÔÓÍÊÖÈß
int main ()
{
        // ÎÁÚßÂËÅÍÈÅ ÏÅÐÅÌÅÍÍÛÕ
        char predl[80]; // Ââåäåííîå ïðåäëîæåíèå
 
        // Çàãîëîâîê ïðîãðàììû
        // Ââîä ïðåäëîæåíèÿ
        InpPredl (predl);
 
        SortWord(predl);
  getch();
        
}
 
// Ââîä ïðåäëîæåíèÿ
void InpPredl(char *s)
{
        puts(" Vvedite predlogenie \n");
        //strcpy (s," Verite li bl, 4to zada4a reshena?");
        strcpy (s,"test abc cba!");
       printf("sourse: %s",s);
        //Ìåíÿåò íà÷àëüíóþ áóêâó ñëîâà íà çàãëàâíóþ
        for(int i=0;i<strlen(s);i++)
                       {
  while(s[i]==' ' && i<strlen(s)) i++;
  s[i] = toupper(s[i]);
  while(s[i]!=' ' && i<strlen(s)) i++;
 }
 
// printf("S: %s",s);
 
        // gets (s);
}
void SortWord(char Str[])
{
        char word[N][N]; // Ìàññèâ ñëîâ â ïðåäëîæåíèè
        char *ptr[N], *token;
        int  counter=0;
 
        token = strtok (Str, "`!;:,.?- ");
        while  (token  !=NULL)
        {       /* âñòàâëÿåò êîä äëÿ îáðàáîòêè ñèìâîëà â öèêëå */
        //      printf("\n%s", token);
                strcpy (word[counter++],token);
                token = strtok(NULL,"`!;:,.?- ");
                /* áåðåò ñëåäóþùèé ñèìâîë */
        }
        for (int i=0; i<counter; i++)
                ptr[i]=word[i];
 
        bubbleSortWord(ptr,counter);
                // Âûâîä ðåçóëüòàòà
                printf("\nResult: ");
        for (int i=0; i<counter; i++)
                printf("%s ",ptr[i]);
}
 
// èç ÔÀÊà êèáåðôîðóìà
void bubbleSortWord(char* a[], long size) {
        long i, j;
        char* x;
 
        for( i=0; i < size; i++) {            // i - íîìåð ïðîõîäà
                for( j = size-1; j > i; j-- ) {     // âíóòðåííèé öèêë ïðîõîäà
                //      Âîçâðàùàåò < 0, åñëè str1 ìåíüøå str2; > 0,
                // åñëè str1 áîëüøå str2, è 0, åñëè îíè ðàâíû
                        if ( strcmp(a[j-1],a[j]) > 0) {
                                x=a[j-1]; a[j-1]=a[j]; a[j]=x;
                        }
                }
        }
}
Теперь меняет на заглавную в каждом слове, а чтоб только для тех у которых больше 3-х букв, надо подсчитывать отдельно длину каждого слова,а не всей строки
1
0 / 0 / 0
Регистрация: 16.01.2010
Сообщений: 4
16.01.2010, 06:43  [ТС] 3
Скора будет разрыв мозга (с вечера 15 числа сижу лабы делаю ...)
СПАСИБО ТЕБЕ ОГРОМНОЕ!
щаз попытаюсь пошаманить может сделаю то что требуют от меня...
Если не сложно глянь плиз со строками, первая лаба в этой теме...
0
182 / 183 / 55
Регистрация: 08.04.2009
Сообщений: 1,309
16.01.2010, 07:00 4
Цитата Сообщение от AHTuBuPyC Посмотреть сообщение
Лаба 1(строки):
Дан текст, найти наибольшее количество идущих подряд букв.
У меня не совсем так.
Прога подсчитывает ВСЕ символы включая и пробелы вплоть до уникального символа, у меня эт # из текстового файла file.txt и выводит результат в out.txt
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
#include <iostream>
#include <fstream>
#include <cstdlib>
#include <cmath>
using namespace std;
 
 
long m=410000;
double d=0.1;
 
ifstream ifs("file.txt");
ofstream out("out.txt"); 
//ofstream am_inf("Amount_of_the_information.txt");   
void Am_inf()
{
     
    char a[m];
    int b[m];
 
    int i = 0;
    bool flag;
    for(int n = 0; n < m; n++)
    b[n] = 0;
    char ch;
    int count = 0;
  
    while(ifs)
    { 
        ifs >> ch;
        for(int j = 0; j < i; j++)
        {
            if(ch == a[j])
            {
               // cout << a[j];      
                b[j]++;
                flag = true;
                break;
            }
        }
       if(!flag)
        {
            a[i] = ch;
           // cout << a[i];
            b[i++]++;
        }
        flag = false;
        count++; 
    }
      cout << count-2 << "\n";
    if(i<m)
        a[i] = '#';
        i = 0;
        int count1 = 0;
      while(a[i]!='#'&& a[i]<m)
    {          
        out << a[i] << " - " << b[i] << endl;
       
        //am_inf << a[i]  << " - " << P << " - " << H << endl;
 
        i++;
        count1++;
 
       // A++;
    }
  //  HH = H/(count-2);
  //  am_inf << "êîë-âî èíô è ñðåäíåå êîë-âî èíô äëÿ áóêâ: " 
  //  << H << " - " << HH << "\n" <<  endl;
     cout << "\n" << count1;
 
}
 
 
main()
{
      Am_inf();
      
      cin.get();
}
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
16.01.2010, 07:00
Помогаю со студенческими работами здесь

Работа с файлами и массивами
Задача состоит в том чтоб считать 30 файлов в каждом файле 24 значения. Посчитать среднее значение...

Работа с файлами и массивами
Всем привет, помогите сделать 2 програмки: 1) Нужна програмка каторая бы открывала текс( на...

Работа с файлами и массивами
Дан двумерный массив размером n*m. 1. Заменить минимальный по модулю элемент каждого столбца на...

Работа с файлами и массивами
Доброго времени суток, коллеги! И так, кратко изложу свою проблему. У меня имеется набор файлов с...

работа с файлами и массивами символов
Написать прогу, что читает слова из файла и составляет рейтинг наиболее употребляемых слов....

Работа с типизированными файлами и массивами
Необходимо выполнить 2 задачи. 1. Написать программу, которая создает типизированный файл и...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru