Модераторы: bsa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Работа с текстом, Работа с текстом 
V
    Опции темы
ziga
Дата 10.4.2008, 07:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 273
Регистрация: 25.4.2007

Репутация: нет
Всего: 1



Задача такая: на С++ мне надо открыть текстовый файл с любым текстом на енглише, и вывести в консоле весь текст только так что бы в каждом слове первая буква была заглавной. Подскажите как это сделать?
PM MAIL   Вверх
anatox91
Дата 10.4.2008, 09:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


программист-самоучка
**


Профиль
Группа: Участник
Сообщений: 699
Регистрация: 12.1.2008
Где: ++Украина.Крым++

Репутация: 1
Всего: 13



что-то типа такого, но говорю сразу что это плохой пример, т.к. работает только если в файле не больше 1000 символов:
Код

#include <iostream>
#include <fstream>
#include <cctype>
using namespace std;

int main(int argc, char *argv[]) {
    char array[1000];
    int i=0;
    if(argc != 2) { 
            cout << "Usage: <programm_name> <file_name>\n";
            return 1;
            }
    ifstream in(argv[1], ios::in | ios::binary);
    
    if(!in) {
            cout << "To open this file is impossible.\n";
            return 1;
            }
    while(!in.eof()) {
                     in.get(array[i]);
                     i++;
                     }
    if(isalpha(array[0])) array[0] = toupper(array[0]); 
    for(i=0; array[i]; i++) {
            if(array[i-1] == ' ') array[i] = toupper(array[i]);
            }
    for(i=0; array[i]; i++) {
             cout << array[i];
             }
    in.close();
    
    cin.get();
    return 0;
}


нужен динамический массив походу...

Это сообщение отредактировал(а) anatox91 - 10.4.2008, 09:10


--------------------

The code is the design ©

Sony VAIO VGN-FW480J

user posted image
PM MAIL ICQ   Вверх
Rififi
Дата 10.4.2008, 12:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1254
Регистрация: 9.3.2008

Репутация: 3
Всего: 36



ziga, 
Код
#include <string>
#include <iostream>
#include <fstream>
#include <locale>

int main()
{
    std::ifstream ifs("text.txt");
    if (!ifs)
        return (-1);

    const std::locale loc("");
    while (!ifs.eof())
    {
        std::string s;
        std::getline(ifs, s);        

        std::string::size_type pos = 0;
        while((pos = s.find(' ', pos)) != std::string::npos)
        {
            pos++; // спозиционируемся на символ, следующий за пробелом
            if (pos >= s.size())
                break;

            // преобразование к верхнему регистру
            s[pos] = std::toupper(s[pos], loc);
        }
        std::cout << s << std::endl;
    }
    return (0);
}


Это сообщение отредактировал(а) Rififi - 10.4.2008, 12:23
PM MAIL   Вверх
ziga
Дата 14.4.2008, 05:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 273
Регистрация: 25.4.2007

Репутация: нет
Всего: 1



Всем спасибо


M
JackYF
Не забываем помечать тему решённой.


Это сообщение отредактировал(а) JackYF - 14.4.2008, 14:58
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0922 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.