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

Найти все возможные варианты написания слова в верхнем и нижнем регистрах букв. - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Создать функцию, которая на вход получает строку символов, сообщает количество вхождений каждой цифры в строку... http://www.cyberforum.ru/cpp-beginners/thread151932.html
Создать функцию, которая на вход получает строку символов, сообщает количество вхождений каждой цифры в строку и в случае, если цифр 5, 6, 7, 8, 9 больше за 0, 1, 2, 3, 4 – замещает каждую из цифр 0, 1, 2, 3, 4 на последовательность символов “”,“*”,“**”,“***”,“****”. Очень нужна на завтра
C++ Перегрузка операторов Исправьте ошибку, неуказанный тип возвращаемого значения, какая я то глупая ошибка, но я не могу понять На этой строке point1=point2+5; #include "stdafx.h" #include <conio.h> using namespace std; class Point{ public: double x,y; }; http://www.cyberforum.ru/cpp-beginners/thread151913.html
C++ Подсчет символов и замена
Помогите, программа должна заменить слово с максимальным количеством символов на слово с минимальным количество символов. Нашел только код, который подсчитывает количество символов в строке, может поможет... #include <iostream.h> #include <string.h> #include <stdlib.h> #include <conio.h> int main() { int i=0;
gotoxy в файлах C++
Подскажите вот на экране можно gotoxy переместить курсор куда захочешь, а в файлах так можно, если можно то как???? Файлах .txt
C++ Поиск элемента списка Студентов с идеальной массой тела http://www.cyberforum.ru/cpp-beginners/thread151857.html
Нужно написать программу связанную с двусвязным списком и атд, помогите пожалуйста решить данную задачу, не могу найти теорию и примеры по списками, поэтому прошу вашей помощи. Заранее спасибо. Суть задания: 1. Описания элемента двунаправленного списка из компонентов согласно варианту задания (табл.1). 2. Описания абстрактного типа данных (АТД) на объектно-ориентированном уровне инкапсуляции,...
C++ std::string и двойной слеш Вопрос достаточно прост в примитивной программе: #include <iostream> #include <string> using namespace std; int main() { string s("C:\Users\"); return 0; } при компиляции возникают ошибки подробнее

Показать сообщение отдельно
Mr.X
Эксперт С++
 Аватар для Mr.X
2801 / 1577 / 247
Регистрация: 03.05.2010
Сообщений: 3,663
06.07.2010, 14:19     Найти все возможные варианты написания слова в верхнем и нижнем регистрах букв.
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
///////////////////////////////////////////////////////////////////////////////////
//  Вывести на экран весь список возможных вариантов слова в различных регистрах.
///////////////////////////////////////////////////////////////////////////////////
#include <algorithm>
#include <bitset>
#include <cmath>
#include <iostream>
#include <limits>
#include <locale>
#include <string>
 
typedef std::string  T_str;
 
void print_razn_case(T_str  word)
{
    static const int WORD_LEN_MAX = std::numeric_limits<unsigned long>::digits;    
    if(word.size() > WORD_LEN_MAX)
    {
        std::cout << "Слово должно быть не длиннее "
                  << WORD_LEN_MAX
                  << "."
                  << std::endl;
        return;
    }    
    
    struct T_make_case
    {
        char operator() (char symbol, char upper_flag)
        {
            return  upper_flag == '1' ? std::toupper(symbol, std::locale(""))                             
                                      : std::tolower(symbol, std::locale(""));                            
        } 
    };
    double  variants_total = pow(static_cast<double>(2), static_cast<int>(word.size()));
    typedef std::bitset<WORD_LEN_MAX>  T_upper_flags;    
    for(
           T_upper_flags  upper_flags; 
           upper_flags.to_ulong() < variants_total; 
           upper_flags = T_upper_flags(upper_flags.to_ulong() + 1) 
       )
    {      
        /*
        T_str  upper_flags_str = upper_flags.template to_string
                                 <char, std::char_traits<char>, std::allocator<char> >();       
        */
        T_str  upper_flags_str = upper_flags.to_string();      
        std::transform(word.begin(), word.end(),
                       upper_flags_str.begin() + WORD_LEN_MAX - word.size(), 
                       std::ostream_iterator<char>(std::cout, ""),
                       T_make_case());
        std::cout << std::endl;       
    }    
    std::cout << "Всего вариантов "
              << variants_total
              << "."
              << std::endl;
}
 
int main()
{
    std::locale::global(std::locale("rus"));        
    T_str  word = "Напримерэто";                    
    print_razn_case(word);    
    return 0;
}
 
Текущее время: 12:37. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru