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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
lexflax
10 / 10 / 1
Регистрация: 03.04.2011
Сообщений: 627
#1

В идентификаторе минимальной длины определить количество букв - C++

16.08.2011, 15:19. Просмотров 602. Ответов 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
# include <iostream>              // класс для работы с вводом-выводом
# include <windows.h>             // для функции    CharToOem(text, bufRus);
# include <fstream>           // класс для работы с файлом  
# include <string>            // класс для работы со строками   
char* Rus(const char* text);      // прототип функции Rus
void main()
{using namespace std;           //необходимо для работы с классом
     string st,stt,str;             // st исходная строка
     string ch;
     char name[10];
     cout<<Rus("введи имя файла")<<endl;
     cin>> name;
     ifstream inf(name);        //открытие файла name на чтение 
     getline(inf,st);           //чтение из файла строки в строку st
     cout<< "st="<< st <<endl;
     int l=0;
     int k=0, i=0,min=200;
     
     while(st[i]!='*')
     {   stt= "";
        while (st[i]!=' ' && st[i]!='*')    // последнее слово может                                    //заканчиваться *
        {
         stt+=st[i];                // stt текущее слово
         i++;
        }
        l=stt.length();
        if(l<min) {min=l; str=stt;}     // str результат    
        
        while(st[i]==' ')i++;           // пропуск серии пробелов
     }
     cout<<Rus("результат 1=")<<str<<endl;
     for(i=0; i<(min-1);i++)
         if(str[i]>='a' && str[i]<='z') k++;
        cout<<"k="<<k<<endl;
    
}
 
 
//  Rus функция перевода на русский !!!
 
    char bufRus[256];
    char* Rus(const char* text)
    {
        CharToOem(text, bufRus);
    return bufRus;
    }
 Комментарий модератора 
Используйте теги форматирования кода!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.08.2011, 15:19     В идентификаторе минимальной длины определить количество букв
Посмотрите здесь:

Работа с классами. Определить слово минимальной длины - C++
Создать класс, содержащий поля данных, реализовать методы их загрузки, обработки и выгрузки. Хранение данных в файле. ЗАДАНИЕ:В строке...

Определить и напечатать слова минимальной длины из текста - C++
Составить программу, которая будет Определять и печатать слова минимальной длины из текста в файл (в C++) Условия: -чтобы текст...

Работа с файлами. Определить и напечатать слова минимальной длины - C++
Определить и напечатать слова минимальной длины.

Определить в предложении слова максимальной и минимальной длины и поменять их местами. C - C++
Доброе время суток!:) Уважаемы программисты, помогите, пожалуйста решить задачу: Дана строка предложение. Определить в предложении слова...

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

Вывести на экран порядковый номер слова минимальной длины и количество символов в этом слове - C++
Дана строка, состоящая из слов, разделенных пробелами. Вывести на экран порядковый номер слова минимальной длины и количество символов в...

Вывести на экран порядковый номер слова минимальной длины и количество символов в этом слове - C++
народ плиз помогите написать прогу в с++ Дана строка символов, состоящая из произвольного текста, слова раз-делены пробелами. Вывести на...

Дана строка. Вывести на экран порядковый номер слова минимальной длины и количество символов в этом слове. - C++
Помогите в решении, пожалуйста. Дана строка символов, состоящая из произвольного текста, слова раз делены пробелами. Вывести на ...

Слово максимальной длины заменить на слово минимальной длины - C++
Задача: Создать 2 объекта разработанного класса. Одной из компонент класса является символьная строка. В результате выполнения программы...

Нахождение слова минимальной длины - C++
Доброе время суток Имеется такой код просто вывода текста из файла на экран(Слов в файле несколько строк.), нужно сделать так, что бы еще...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Сыроежка
Заблокирован
16.08.2011, 16:40     В идентификаторе минимальной длины определить количество букв #2
Если "ни фига не работает", то сообщайте, что именно не работает! Либо он у вас не компилируется, либо выдает ошибку времени выполнения, либо выдает логически неверный результат.
-=ЮрА=-
Заблокирован
Автор FAQ
16.08.2011, 21:57     В идентификаторе минимальной длины определить количество букв #3
Цитата Сообщение от lexflax Посмотреть сообщение
while(st[i]!='*')
* * * * *{* * * *stt= "";
* * * * * * * * while (st[i]!=' ' && st[i]!='*')* * * * // последнее слово может * * * ** * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //заканчиваться *
* * * * * * * * {
* * * * * * * * *stt+=st[i];* * * * * * * * * * * * * * // stt текущее слово
* * * * * * * * *i++;
* * * * * * * * }
* * * * * * * * l=stt.length();
* * * * * * * * if(l<min) {min=l; str=stt;} * * * * * * // str результат* * * *
while(st[i]==' ')i++; * * * * * * * * * // пропуск серии пробелов
* * * * *}
Думаю может вылетать потому что в циклах нет проверки на достижение конца строки, что нибудь типа
C++
1
2
if(!(*st + i))
break;
, а также есть подозрения на ошибку потока, т.к. inf не закрывается после чтения inf.close() и при повторном чтении почти на 100% уверен будут вылезть баги...
Jupiter
Каратель
Эксперт С++
6552 / 3972 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
16.08.2011, 22:15     В идентификаторе минимальной длины определить количество букв #4
Цитата Сообщение от lexflax Посмотреть сообщение
а компилирую и запускаю в компиляторе с++ трубо .
смените компилятор ибо этот безнадежно устарел
Yandex
Объявления
16.08.2011, 22:15     В идентификаторе минимальной длины определить количество букв
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru