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

Текстовые файлы - C++

Восстановить пароль Регистрация
 
Natali19
0 / 0 / 0
Регистрация: 15.05.2010
Сообщений: 11
30.11.2011, 10:28     Текстовые файлы #1
Дан файл, содержащий текст, включающий в себя русские и английские слова. Получить новый файл, заменив в исходном все заглавные буквы строчными и наоборот.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.11.2011, 10:28     Текстовые файлы
Посмотрите здесь:

C++ Текстовые файлы
Текстовые файлы (С++) C++
C++ Текстовые файлы
C++ Текстовые файлы
C++ Текстовые файлы
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
accept
4838 / 3237 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
30.11.2011, 16:27     Текстовые файлы #2
используй массив с заглавными и строчными буквами
Natali19
0 / 0 / 0
Регистрация: 15.05.2010
Сообщений: 11
02.12.2011, 06:53  [ТС]     Текстовые файлы #3
Цитата Сообщение от accept Посмотреть сообщение
используй массив с заглавными и строчными буквами
Можно потробней?
accept
4838 / 3237 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
02.12.2011, 07:33     Текстовые файлы #4
C
1
2
3
4
5
6
7
8
9
    char ltrs[52] = "abcdefghijklmnopqrstuvwxyz"
                    "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
    int c;
    
    c = 'a';
    if (memchr(ltrs, c, 26))
        c += 26;
    else if (memchr(ltrs + 26, c, 26)
        c -= 26;
так любые символы вносишь
символы из первой части будут отображаться на вторую, а символы из второй - на первую
Natali19
0 / 0 / 0
Регистрация: 15.05.2010
Сообщений: 11
02.12.2011, 07:45  [ТС]     Текстовые файлы #5
Огромное спасибо))))А...можно еще по подробней....просто я немного "чайник".
zuq
 Аватар для zuq
95 / 95 / 2
Регистрация: 10.04.2011
Сообщений: 256
02.12.2011, 09:25     Текстовые файлы #6
Цитата Сообщение от Natali19 Посмотреть сообщение
Дан файл, содержащий текст, включающий в себя русские и английские слова. Получить новый файл, заменив в исходном все заглавные буквы строчными и наоборот.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <fstream>
#include <string>
#include <cctype>
 
void f(std::string &str) {
    for(size_t i(0); i < str.length(); ++i)
        str[i] = islower(str[i]) ? toupper(str[i]) : tolower(str[i]);
}
 
int main() {
 
    std::ifstream in("srcfile.txt");
    std::ofstream out("outfile.txt");
    std::string str;
 
    while(in >> str) {
        f(str);
        out << str << ' ';
    }
 
    return 0;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.12.2011, 15:56     Текстовые файлы
Еще ссылки по теме:

C++ Текстовые файлы
C++ Текстовые файлы
C++ Текстовые файлы с++

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

Или воспользуйтесь поиском по форуму:
accept
4838 / 3237 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
02.12.2011, 15:56     Текстовые файлы #7
tolower() и toupper() не подойдут, так как там не только английские буквы
если делать tolower() и toupper() для английских, а для русских по-другому обрабатывать, то это нужно проверять, русские они или не русские
а можно ещё локаль настроить и применять towlower() и towupper()
зачем ?
проще сделать один массив, в котором есть маленькие и большие буквы из обоих языков
(для обоих языков есть односимвольные кодировки)
Yandex
Объявления
02.12.2011, 15:56     Текстовые файлы
Ответ Создать тему
Опции темы

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