Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.66/56: Рейтинг темы: голосов - 56, средняя оценка - 4.66
0 / 0 / 0
Регистрация: 21.05.2013
Сообщений: 25

Написать функцию, возвращающую преобразованную к верхнему регистру строку, полученную в качестве аргумента

08.07.2013, 00:28. Показов 11802. Ответов 15
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
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
// функция upcase
#include <stdio.h>
#include <conio.h>
#include <iostream>
 
using namespace std;
 
//функция преобразования строчных букв в прописные
char* upcase(char *st)
{
      
      int i = 0;
      while ( st[i] )
      {
            if (st[i] >= 'a' && st[i] <= 'z' ||  // латинские
                st[i] >= 'а' && st[i] <= 'п') // русские
            st[i]-= 32;
            else if ( st[i] >= 'р' && st[i] <= 'я')
            st[i]-=80;
            i++;
            }
            return st;
}
 
//  пример использования функции upcase
int main()
{
    setlocale ( LC_ALL, "Russian_Russia.1251" );     
     char st[80];
     
     puts(" Введите строку текста");
     gets(st);
     puts(upcase(st));
     getch();
}
Не могу найти ошибку.Введенные строчные русские буквы,не становятся прописными.Подскажите,что я сделал не так...
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
08.07.2013, 00:28
Ответы с готовыми решениями:

Написать функцию, которая преобразует входную строку к верхнему регистру
Написать функцию, которая возвращает преобразованную к верхнему регистру строку, полученную в качестве аргумента.

Написать функцию, получающую массив в качестве аргумента, и возвращающую сумму всех положительных числовых элементов
Написать функцию, получающую массив в качестве аргумента, и возвращающую сумму всех положительных числовых элементов. Если таких...

Создать функцию, имеющую два аргумента и возвращающую в качестве аргумента число из отрезка [a,b]
Создать функцию, которая будет иметь два целочисленных параметра a и b, и в качестве своего значения возвращать случайное целое число из...

15
5499 / 4894 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
08.07.2013, 00:36
Цитата Сообщение от Alex_lt Посмотреть сообщение
Введенные строчные русские буквы,не становятся прописными.Подскажите,что я сделал не так...
Наверное, не сделали ввод русских букв.

Добавлено через 1 минуту
C++
1
2
3
4
5
6
7
8
#include <windows.h>
 
int main()
{
  SetConsoleCP(1251);
  SetConsoleOutputCP(1251);
  ...
}
В свойствах консоли выбрать шрифт: Lucida Console
1
Автор FAQ
 Аватар для -=ЮрА=-
6614 / 4256 / 401
Регистрация: 08.08.2009
Сообщений: 10,325
Записей в блоге: 24
08.07.2013, 00:37
Цитата Сообщение от Alex_lt Посмотреть сообщение
setlocale ( LC_CTYPE, "Russian_Russia.1251" );
попробуй руссифицировать не всё и конечно же лучше просто записать
setlocale ( LC_CTYPE, "RUS" );
Добавлено через 16 секунд
Alex_lt, какой компилятор?
0
45 / 48 / 5
Регистрация: 24.06.2013
Сообщений: 677
08.07.2013, 00:41
Цитата Сообщение от Alex_lt Посмотреть сообщение
функция преобразования строчных букв в прописные
А мне одному показалось, что тема и суть темы - противоположные вещи? Верхний регистр - это же строчные, а нижний - прописные...хотя плевать.
0
Ghost
 Аватар для Belfegor
174 / 174 / 40
Регистрация: 16.09.2012
Сообщений: 526
08.07.2013, 00:41
вот что есть
Миниатюры
Написать функцию, возвращающую преобразованную к верхнему регистру строку, полученную в качестве аргумента  
0
5499 / 4894 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
08.07.2013, 00:47
Цитата Сообщение от Belfegor Посмотреть сообщение
вот что есть
У ТС собственная реализация.
0
Автор FAQ
 Аватар для -=ЮрА=-
6614 / 4256 / 401
Регистрация: 08.08.2009
Сообщений: 10,325
Записей в блоге: 24
08.07.2013, 00:51
Alex_lt, вот твой код без всяких изменений в алгоритме(только гетч заменил)
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
#include <iostream>
using namespace std;
 
//функция преобразования строчных букв в прописные
char * upcase(char * st);
 
// пример использования функции upcase
int main()
{
setlocale ( LC_CTYPE, "RUS" ); 
char st[] = "fdsfяпапврр";
 
//puts(" Введите строку текста");
//gets(st);
puts(upcase(st));
cin.get();
return 0;
} 
 
//функция преобразования строчных букв в прописные
char * upcase(char * st)
{
int i = 0;
while ( st[i] )
{
if (st[i] >= 'a' && st[i] <= 'z' || // латинские
st[i] >= 'а' && st[i] <= 'п') // русские
st[i]-= 32;
else if ( st[i] >= 'р' && st[i] <= 'я')
st[i]-=80;
i++;
}
return st;
}
Компилировалось на VisualStudio 9.0 на 6-ке скажем setlocale не отработает, так что вопрос по компилятору оставил открытым
Миниатюры
Написать функцию, возвращающую преобразованную к верхнему регистру строку, полученную в качестве аргумента  
1
5499 / 4894 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
08.07.2013, 01:00
Так тоже работает:
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
// функция upcase
#include <stdio.h>
#include <conio.h>
#include <iostream>
#include <windows.h>
 
 using namespace std;
 
 //функция преобразования строчных букв в прописные
 char* upcase(char *st)
 {
     int i = 0;
     while ( st[i] )
     {
         if (st[i] >= 'a' && st[i] <= 'z' || // латинские
         st[i] >= 'а' && st[i] <= 'я') // русские
         st[i]-= 32;
         i++;
     }
     return st;
 }
 
 // пример использования функции upcase
 int main()
 {
     //setlocale ( 0, "" );
     SetConsoleCP(1251);
     SetConsoleOutputCP(1251);
     char st[80];
 
     puts(" Введите строку текста");
     gets(st);
     puts(upcase(st));
     getch();
 }
Миниатюры
Написать функцию, возвращающую преобразованную к верхнему регистру строку, полученную в качестве аргумента  
0
5499 / 4894 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
08.07.2013, 01:45
Только для 'ё' нужно добавить:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
char* upcase(char *st)
 {
     int i = 0;
     while ( st[i] )
     {
         if (st[i] == 'ё') st[i]-= 16;
         else
         if (st[i] >= 'a' && st[i] <= 'z' || 
         st[i] >= 'а' && st[i] <= 'я') 
         st[i]-= 32;
         
         i++;
     }
     return st;
 }
0
 Аватар для Bend3r
150 / 137 / 35
Регистрация: 29.07.2012
Сообщений: 709
08.07.2013, 03:55
Проще подключить библиотеку cctype. И там есть функции tolower(нижний регистр), toupper(верхний регистр).
Вот еще русский язык в консоле:
Подключаешь #include <Windows>.
И прям в main пишешь
SetConsoleCP(1251);
SetConsoleOutputCP(1251);

Профит!
0
5499 / 4894 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
08.07.2013, 04:05
Цитата Сообщение от Bend3r Посмотреть сообщение
Вот еще русский язык в консоле:
Подключаешь #include <Windows>.
И прям в main пишешь
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
Второй и пятый пост прочтите.
0
08.07.2013, 04:13

Не по теме:

Цитата Сообщение от Bend3r Посмотреть сообщение
Вот еще русский язык в консоле:
Подключаешь #include <Windows>.
Где такой файл взять - windows

1
 Аватар для Bend3r
150 / 137 / 35
Регистрация: 29.07.2012
Сообщений: 709
08.07.2013, 04:18
Цитата Сообщение от Croessmah Посмотреть сообщение

Не по теме:


Где такой файл взять - windows

Библиотека такая есть. В ней много всякого полезного. (ссылка)

Добавлено через 1 минуту
Цитата Сообщение от alsav22 Посмотреть сообщение
Второй и пятый пост прочтите.
Я читаю первый пост, знаю пишу, не знаю значит закрываю вкладку.
0
08.07.2013, 04:23

Не по теме:

Цитата Сообщение от Bend3r Посмотреть сообщение
Библиотека такая есть
первый раз слышу. А по ссылке про хедер windows.h

0
08.07.2013, 04:25

Не по теме:

Цитата Сообщение от Bend3r Посмотреть сообщение
Я читаю первый пост, знаю пишу, не знаю значит закрываю вкладку.
Свои знания демонстрируете?

0
Автор FAQ
 Аватар для -=ЮрА=-
6614 / 4256 / 401
Регистрация: 08.08.2009
Сообщений: 10,325
Записей в блоге: 24
08.07.2013, 08:39
Bend3r, windows.h как и любой другой заголовочный файл ЭТО НЕ БИБЛИОТЕКА - бибилиотека это lib файлы, которые содержут скомпилированные прототипы функций. Хедер это в перводе - заголовочный файл т.е файл который содержит заголовки функций(и всё более ничего, ну может парочку дефайнов), хедер без lib-файла (бибилиотеки) - пустое место. Во всех хедерах присутсвует подключение бибилиотек через #pragma once(lib,"NameOfLib.lib") но это не делает хедер библиотекой.

Уже право плеваться хочется когда на какой нибудь хедер говрят библиотека!
2
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
08.07.2013, 08:39
Помогаю со студенческими работами здесь

Написать функцию, которая в качестве входного аргумента получает строку, а возвращает строку перевернутую
Написать функцию, которая в качестве входного аргумента получает строку, а возвращает строку перевернутую (пример, из 'строка' получаем...

Реализовать функцию Revert(s), возвращающую строку, полученную из символов, составляющих s
2. Реализовать функцию Revert(s), возвращающую строку, полученную из символов, составляющих s, записанных в обратном порядке: 123ааббвв...

Реализовать функцию Copy(s, i, n), возвращающую строку, полученную копированием из строки s n символов
Реализовать функцию Copy(s, i, n), возвращающую строку, полученную копированием из строки s n символов, начиная с i-го. Не использовать...

Реализовать функцию Copy(s, i, n), возвращающую строку, полученную копированием из строки s n символов
C++ 1.Реализовать функцию Copy(s, i, n), возвращающую строку, полученную копированием из строки s n символов, начиная с i-го. Не...

Реализовать функцию Delete(s, i, n), возвращающую строку, полученную удалением из строки s n символов
Реализовать функцию Delete(s, i, n), возвращающую строку, полученную удалением из строки s n символов, начиная с i-го. Не использовать...


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

Или воспользуйтесь поиском по форуму:
16
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru