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

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 13, средняя оценка - 4.62
HanteR
1 / 1 / 0
Регистрация: 23.10.2009
Сообщений: 53
#1

Смена регистра в словах - C++

25.06.2010, 13:24. Просмотров 1813. Ответов 16
Метки нет (Все метки)

Помогите пожалуйста написать программу: Заданный текст превратить таким образом, чтобы каждое слово начиналось с большой буквы. Считать, что слова текста разделены одним пробелом.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.06.2010, 13:24
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Смена регистра в словах (C++):

Смена регистра строки на противоположный - C++
Здравствуйте, уважаемые форумчане! Создайте функцию, которая изменяет регистр строки на противоположный, т.е. строчные буквы на заглавные...

Написать функцию которая в строке заменяет все символы верхнего регистра в символы нижнего регистра - C++
Здравствуйте. помогите написать программу. Написать функцию которая в строке заменяет все символы верхнего регистра в символы нижнего...

написать функцию, которая в строке заменяет все символы верхенго регистра в символы нижнего регистра - C++
привет всем, помогите составить программу для решения данной задачи. написать функцию, которая в строке заменяет все символы верхенго...

В новом файле заменить все латинские буквы верхнего регистра на буквы нижнего регистра - C++
9. В новом файле заменить все латинские буквы верхнего регистра на буквы нижнего регистра. help

Функция преобразует буквы верхнего регистра в строке s в буквы нижнего регистра - C++
Задание: strlwr char *strlwr( char *s); Функция преобразует буквы верхнего регистра в строке s в буквы нижнего регистра. P.S....

Заменить все буквы нижнего регистра в строке на буквы верхнего регистра - C++
Определить функцию, заменяющую все буквы нижнего регистра в строке на буквы верхнего регистра.

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Хохол
Эксперт C++
475 / 443 / 13
Регистрация: 20.11.2009
Сообщений: 1,292
25.06.2010, 13:29 #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
#include <string>
#include <conio.h>
 
using namespace std;
 
int main()
{
     string s;
     while(cin >> s)
     {
           if(s[0] >= 'a' && s[0] <= 'z')
                 s[0] += 'A' - 'a';
           cout << s << ' ';
     }
}
Для выхода нажать ctrl+Z.
Кто-нить, научите меня уже, что делать штоб не нужно было ctrl+Z нажимать? Чтоб она читала до конца строки и успокаивалась.
1
easybudda
Модератор
Эксперт CЭксперт С++
9627 / 5575 / 947
Регистрация: 25.07.2009
Сообщений: 10,710
25.06.2010, 13:34 #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
#include <iostream>
#include <string>
#include <sstream>
#include <cctype>
 
int main(){
    std::string buf;
    
    while ( true ){
        std::cout << "String: ";
        std::getline(std::cin, buf);
        if ( buf.empty() )
            break;
        std::istringstream ist(buf);
        std::ostringstream ost;
        while ( ist >> buf ){
            *buf.begin() = toupper(*buf.begin());
            ost << buf << ' ';
        }
        std::cout << "Result: " << ost.str() << std::endl;
    }
    
    return 0;
}
2
kazak
3035 / 2356 / 155
Регистрация: 11.03.2009
Сообщений: 5,402
Завершенные тесты: 1
25.06.2010, 13:38 #4
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream.h>
 
int main(int argc, char* argv[])
{
   char str[512] = {'\0'};
 
   cout << "Vvedite stroku: ";
   cin.getline(str, 511);
   cin.sync();
   for (unsigned int i = 0; i < strlen(str); i++)
   {
      if ((i == 0 || str[i-1] == ' ')&&(str[i] >= 'a' && str[i] <= 'z'))
         str[i] -= 'a' - 'A';
   }
   cout << str << endl;
   cin.get();
   return 0;
}
Добавлено через 1 минуту
Цитата Сообщение от Хохол Посмотреть сообщение
Кто-нить, научите меня уже, что делать штоб не нужно было ctrl+Z нажимать? Чтоб она читала до конца строки и успокаивалась.
C++
1
2
3
int symbol;
while ((symbol = cin.get()) != '\n')
{}
1
Хохол
Эксперт C++
475 / 443 / 13
Регистрация: 20.11.2009
Сообщений: 1,292
25.06.2010, 14:02 #5
Немного плагиата, и получаем такой вариант:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
#include <string>
#include <sstream>
 
using namespace std;
 
int main()
{
    string buf, s;
    while(getline(cin,buf), !buf.empty())
    {
        stringstream in(buf);
        while(in >> s)
        {
            if(s[0] >= 'a' && s[0] <= 'z')
                 s[0] += 'A' - 'a';
            cout << s << ' ';
        }
        cout << endl;
    }
}
1
easybudda
Модератор
Эксперт CЭксперт С++
9627 / 5575 / 947
Регистрация: 25.07.2009
Сообщений: 10,710
25.06.2010, 15:42 #6
Хохол, а функцию toupper() по религиозным соображениям предпочитаете не использовать?
1
Хохол
Эксперт C++
475 / 443 / 13
Регистрация: 20.11.2009
Сообщений: 1,292
25.06.2010, 15:49 #7
Ой, не заметил. Это ж минус строка кода! Ща исправим.

Добавлено через 1 минуту
Гыгы:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
#include <string>
#include <sstream>
 
using namespace std;
 
int main()
{
        string buf, s;
        while(getline(cin,buf), !buf.empty())
        {
                stringstream in(buf);
                while(in >> s)
                {
                        s[0] = toupper(s[0]);
                        cout << s << ' ';
                }
                cout << endl;
        }
}
1
fasked
Эксперт С++
4936 / 2516 / 180
Регистрация: 07.10.2009
Сообщений: 4,311
Записей в блоге: 1
25.06.2010, 15:51 #8
Цитата Сообщение от Хохол Посмотреть сообщение
Ой, не заметил. Это ж минус строка кода! Ща исправим.
Это не только минус строка кода
0
Хохол
Эксперт C++
475 / 443 / 13
Регистрация: 20.11.2009
Сообщений: 1,292
25.06.2010, 15:58 #9
А что еще?
0
fasked
Эксперт С++
4936 / 2516 / 180
Регистрация: 07.10.2009
Сообщений: 4,311
Записей в блоге: 1
25.06.2010, 16:06 #10
Цитата Сообщение от Хохол Посмотреть сообщение
А что еще?
Если я все правильно понимаю, то toupper может зависеть от используемого языка.
0
easybudda
Модератор
Эксперт CЭксперт С++
9627 / 5575 / 947
Регистрация: 25.07.2009
Сообщений: 10,710
25.06.2010, 16:06 #11
Цитата Сообщение от Хохол Посмотреть сообщение
Это ж минус строка кода!
Эта "минус строка" компенсируется "include <cctype>", а то мелкомягкий компилятор "опаньки" скажет. Разница действительно не в количестве строк кода...
0
Хохол
Эксперт C++
475 / 443 / 13
Регистрация: 20.11.2009
Сообщений: 1,292
25.06.2010, 16:08 #12
Проверил ща, у меня в VS c русскими буквами не работает.

Добавлено через 57 секунд
easybudda, я не инклудил сctype, но все работает.
0
fasked
Эксперт С++
4936 / 2516 / 180
Регистрация: 07.10.2009
Сообщений: 4,311
Записей в блоге: 1
25.06.2010, 16:14 #13
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
#include <string>
#include <locale>
 
int main()
{
   setlocale(LC_ALL, "RUS");
 
   std::string str = "привет";
   std::cout << str << std::endl;
 
   for(int i = 0; i < str.length(); ++i)
      str[i] = toupper(str[i]);
 
   std::cout << str << std::endl;
 
   system("pause");
   return 0;
}
Код
привет
ПРИВЕТ
Press any key to continue . . .
1
Хохол
Эксперт C++
475 / 443 / 13
Регистрация: 20.11.2009
Сообщений: 1,292
25.06.2010, 16:28 #14
Понятно, спсы. Правда у меня после вызова этой штуки перестают нормально считываться русские буквы. Пишутся и обрабатываются нормально, читаются неверно.
0
fasked
Эксперт С++
4936 / 2516 / 180
Регистрация: 07.10.2009
Сообщений: 4,311
Записей в блоге: 1
25.06.2010, 16:32 #15
Цитата Сообщение от Хохол Посмотреть сообщение
Правда у меня после вызова этой штуки перестают нормально считываться русские буквы. Пишутся и обрабатываются нормально, читаются неверно.
да с русским языком в принципе везде косяки, лучше не писать по-русски
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.06.2010, 16:32
Привет! Вот еще темы с ответами:

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

Удалить в словах буквы е - C++
Удалить в словах первое вхождение буквы &quot;е&quot;, если такое имеется.

Замена букв в словах - C++
мучаюсь с этим, всё никак не могу понять. делала с использованием вектора. но говорит, что это неправильно, т.к. по курсу ещё не проходили....

Символ s в нечетных словах - C++
На вход дается строка, заканчивающаяся на 13 символ (как обычно). Слова отделяются друг от друга пробелами (одним или несколькими). Найти...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
25.06.2010, 16:32
Ответ Создать тему
Опции темы

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