Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Центр помощи > [C++ Builder] Операции со сторками


Автор: lazydan 7.4.2010, 19:41
Здравствуйте! Помогите пожалуйста составить две програмки..
1) Для заданных двух строк построить новую, в начале которой стоит более длинная строка, а за ней через пробел - более короткая.

2) В произвольном тексте заменить прописные буквы строчными, а строчные - прописными.

Заранее спасибо. smile

Автор: ИванМ 7.4.2010, 20:05
первое задание:
Код

String strf(String s1, String s2)
{
    return s1.Length()>=s2.Length() ? s1+" "+s2 : s2+" "+s1;;
}

второе задание:
Код

#include <locale>
String strf2(String s)
{
    for(int i=1;i<=s.Length();i++)
    {
        if(isalpha(s[i], std::locale("russian_russia"))))
        {
            if(s[i]&0x20)
                s[i]^=0x20;
            else
                s[i]|=0x20;
        }
    }
    return s;
}

Автор: taiven 7.4.2010, 20:20
Цитата
1) Для заданных двух строк построить новую, в начале которой стоит более длинная строка, а за ней через пробел - более короткая.

Код

#include <iostream>
#include <string>

int main()
{
    std::string str1;
    std::cin >> str1;
    std::string str2;
    std::cin >> str2;
    std::string str_res = ( str2.length() <= str1.length() )? str1+' '+str2 : str2+' '+str1;
    std::cout << str_res << std::endl;
    return 0;
}


Цитата
2) В произвольном тексте заменить прописные буквы строчными, а строчные - прописными.

Код

#include <iostream>
#include <string>
#include <cctype>
#include <algorithm>

void func(char& ch){ ch = isupper(ch)? tolower(ch) : toupper(ch); }

int main()
{
    std::string text;
    std::getline(std::cin, text);
    std::for_each(text.begin(), text.end(), func);
    std::cout << text << std::endl;
    return 0;
}


Автор: ИванМ 7.4.2010, 20:33
taiven, твой вариант в билдере с кириллицей не работает

Автор: lazydan 9.4.2010, 06:41
ИванМ
Спасибо огромное! Вроде заработало smile
Поставил бы «+» в репу, но не хватает постов((

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)