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

Напечатать последовательность слов, преобразовав все буквы в строчные - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.70
raal
0 / 0 / 0
Регистрация: 04.11.2010
Сообщений: 8
04.11.2010, 19:46     Напечатать последовательность слов, преобразовав все буквы в строчные #1
Дана последовательность, содержащая от 1 до 30 прописных латинских букв; между соседними словами - запятая, за последним словом - точка. Напечатать эту же последовательность слов, преобразовав все буквы в строчные.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.11.2010, 19:46     Напечатать последовательность слов, преобразовав все буквы в строчные
Посмотрите здесь:

C++ Заменить все прописные буквы на строчные С++
C++ Напечатать все слова, отличные от последнего слова, предварительно преобразовав каждое из них по заданному правилу
Преобразовать в строке все прописные латинские буквы в строчные. C++
Напечатать только строчные русские буквы, входящие в текст C++
Дан текст. Напечатать его, преобразовав каждое слово по следующему правилу: удалить из слова все предыдушие вхождения последней буквы. C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ForEveR
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 3
04.11.2010, 19:52     Напечатать последовательность слов, преобразовав все буквы в строчные #2
raal,
C++
1
2
3
4
5
6
7
8
9
10
11
#include <iostream>
#include <cstring>
 
int main()
{
    char str[]="HELLO";
    for(size_t i=0; i<strlen(str); ++i)
        str[i]=tolower(str[i]);
    std::cout<<str<<'\n';
    return 0;
}
C++
1
2
3
4
5
6
7
8
9
10
#include <iostream>
#include <cstring>
 
int main()
{
    char str[]="HELLO";
    strlwr(str);
    std::cout<<str<<'\n';
    return 0;
}
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
 
void transform(char* arr)
{
    while(*arr!='\0')
    {
         *arr++=*arr + 0x20;
    }
}
 
int main()
{
     char str[]="HELLO";
     transform(str);
     std::cout<<str<<'\n';
     return 0;
}
tartikov
Заблокирован
04.11.2010, 19:57     Напечатать последовательность слов, преобразовав все буквы в строчные #3
ForEveR, strlen в условии цикла, ужас.
raal
0 / 0 / 0
Регистрация: 04.11.2010
Сообщений: 8
04.11.2010, 20:02  [ТС]     Напечатать последовательность слов, преобразовав все буквы в строчные #4
а можно ж использовать strlwr для преобразования?
ForEveR
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 3
04.11.2010, 20:03     Напечатать последовательность слов, преобразовав все буквы в строчные #5
raal, Да

Добавлено через 40 секунд
tartikov, И в чем же ужас? Для таких программ норм. А так проще записать в переменную. Я как-то пользуюсь string и не парюсь.
raal
0 / 0 / 0
Регистрация: 04.11.2010
Сообщений: 8
04.11.2010, 20:07  [ТС]     Напечатать последовательность слов, преобразовав все буквы в строчные #6
у меня ж строка со слов разделенных запятой, а в конце точка. как с этим быть?
ForEveR
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 3
04.11.2010, 20:10     Напечатать последовательность слов, преобразовав все буквы в строчные #7
raal, Вы правда думаете что что-то изменилось?
C++
1
2
3
4
5
6
7
8
9
10
#include <iostream>
#include <cstring>
 
int main()
{
        char str[]="HELLO, MAN, and GIRL, bye.";
        strlwr(str);
        std::cout<<str<<'\n';
        return 0;
}
Добавлено через 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 <cctype>
 
void transform(char* arr)
{
    while(*arr!='\0')
    {
         if(isalpha(*arr)&&isupper(*arr))
            *arr=*arr + 0x20;
         arr++;
    }
}
 
int main()
{
     char str[]="HELLO, MAN, and GIRL, bye.";
     transform(str);
     std::cout<<str<<'\n';
     return 0;
}
raal
0 / 0 / 0
Регистрация: 04.11.2010
Сообщений: 8
04.11.2010, 20:24  [ТС]     Напечатать последовательность слов, преобразовав все буквы в строчные #8
а что делает isalpha и isupper? что такое 0x20?
ForEveR
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 3
04.11.2010, 20:27     Напечатать последовательность слов, преобразовав все буквы в строчные #9
raal, 0x20=32 в десятичной системе счисления.
isalpha - проверяет ли символ буквой
isupper - находится ли символ в верхнем регистре
slice
32 / 75 / 4
Регистрация: 04.11.2010
Сообщений: 249
04.11.2010, 22:36     Напечатать последовательность слов, преобразовав все буквы в строчные #10
Цитата Сообщение от ForEveR Посмотреть сообщение
*arr=*arr + 0x20;
омг. Ну и бред.
ForEveR
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 3
04.11.2010, 22:53     Напечатать последовательность слов, преобразовав все буквы в строчные #11
slice, В чем бред?
C++
1
*arr=*arr+32
меньший бред?
C++
1
*arr=*arr+040
?
slice
32 / 75 / 4
Регистрация: 04.11.2010
Сообщений: 249
04.11.2010, 22:56     Напечатать последовательность слов, преобразовав все буквы в строчные #12
Цитата Сообщение от ForEveR Посмотреть сообщение
В чем бред?
В том, что это работает неверно
CyBOSSeR
Эксперт C++
 Аватар для CyBOSSeR
2294 / 1664 / 86
Регистрация: 06.03.2009
Сообщений: 3,675
04.11.2010, 23:05     Напечатать последовательность слов, преобразовав все буквы в строчные #13
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <algorithm>
#include <iostream>
#include <functional>
#include <string>
#include <cctype>
 
struct Replacer : std::unary_function<char, char> {
  char operator()(char ch) const {
    return std::isalpha(ch)? std::tolower(ch) : ch;
  }
};
 
int main() {
  std::string str = "THIS,IS,THE,TEST,STRING.";
  
  std::transform(str.begin(), str.end(), str.begin(), Replacer());
  
  std::cout << str << std::endl;
  
  return 0; 
}
Результат: http://liveworkspace.org/code/94e942...95cd398b85e39a.
slice
32 / 75 / 4
Регистрация: 04.11.2010
Сообщений: 249
04.11.2010, 23:07     Напечатать последовательность слов, преобразовав все буквы в строчные #14
Цитата Сообщение от CyBOSSeR Посмотреть сообщение
Результат
фэйл: http://liveworkspace.org/code/f4928d...c922c5836c157a
CyBOSSeR
Эксперт C++
 Аватар для CyBOSSeR
2294 / 1664 / 86
Регистрация: 06.03.2009
Сообщений: 3,675
04.11.2010, 23:10     Напечатать последовательность слов, преобразовав все буквы в строчные #15
Цитата Сообщение от raal Посмотреть сообщение
прописных латинских букв
slice, читать умеем?
ForEveR
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 3
04.11.2010, 23:14     Напечатать последовательность слов, преобразовав все буквы в строчные #16
slice, Доказательства приведете, что мой код не переводит прописные латинские буквы в строчные?
slice
32 / 75 / 4
Регистрация: 04.11.2010
Сообщений: 249
04.11.2010, 23:15     Напечатать последовательность слов, преобразовав все буквы в строчные #17
CyBOSSeR
Вообще то, я считаю, что программист должен учитывать все варианты, а не следовать каким-то ограничениям, которые наложил первокурсник двоишник в своих требованиях.
Неужели Вы считаете иначе?
ForEveR
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 3
04.11.2010, 23:15     Напечатать последовательность слов, преобразовав все буквы в строчные #18
slice, Если есть ТЗ, зачем выходить за него?
tartikov
Заблокирован
04.11.2010, 23:18     Напечатать последовательность слов, преобразовав все буквы в строчные #19
setlocale(LC_ALL, "");
не?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.11.2010, 23:30     Напечатать последовательность слов, преобразовав все буквы в строчные
Еще ссылки по теме:

Дана последовательность слов.Напечатать все слова, отличные от слова «по» C++
C++ Напечатать все строчные русские гласные буквы
Поменять все строчные буквы на прописные, прописные на строчные C++

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

Или воспользуйтесь поиском по форуму:
CyBOSSeR
Эксперт C++
 Аватар для CyBOSSeR
2294 / 1664 / 86
Регистрация: 06.03.2009
Сообщений: 3,675
04.11.2010, 23:30     Напечатать последовательность слов, преобразовав все буквы в строчные #20
Цитата Сообщение от slice Посмотреть сообщение
Вообще то, я считаю, что программист должен учитывать все варианты
Подобные идеалистические соображения обычно приводят к тому, что называется параличом от анализа. Лучше воспринимать разработку ПО как итеративный процесс.
Цитата Сообщение от slice Посмотреть сообщение
Неужели Вы считаете иначе?
Мне больше импонирует принцип Do The Simplest Thing That Could Possibly Work.
Цитата Сообщение от Кент Бек
[...] лучше сделать простую вещь сегодня и заплатить чуточку больше завтра для того, чтобы модифицировать ее (если в этом возникнет необходимость), чем разработать более сложный код сегодня, а потом узнать, что этот код больше не нужен
Yandex
Объявления
04.11.2010, 23:30     Напечатать последовательность слов, преобразовав все буквы в строчные
Ответ Создать тему
Опции темы

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