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

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

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 14, средняя оценка - 4.64
Alex_lt
0 / 0 / 0
Регистрация: 21.05.2013
Сообщений: 25
08.07.2013, 00:28     Написать функцию, возвращающую преобразованную к верхнему регистру строку, полученную в качестве аргумента #1
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();
}
Не могу найти ошибку.Введенные строчные русские буквы,не становятся прописными.Подскажите,что я сделал не так...
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.07.2013, 00:28     Написать функцию, возвращающую преобразованную к верхнему регистру строку, полученную в качестве аргумента
Посмотрите здесь:

C++ Написать функцию Procent, которая возвращает процент от полученного в качестве аргумента числа.
C++ Написать функцию, которая возвращает максимальное из двух целых чисел, полученных в качестве аргумента. С++
Написать функцию, которая возвращается True, если символ, полученный функцией в качестве аргумента, является гласной буквой русского алфавита C++
C++ Написать функцию Procent, которая возвращает процент от полученного в качестве аргумента числа
Написать функцию, возвращающую максимальное из двух целых чисел, полученных в качестве аргументов C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
08.07.2013, 00:36     Написать функцию, возвращающую преобразованную к верхнему регистру строку, полученную в качестве аргумента #2
Цитата Сообщение от Alex_lt Посмотреть сообщение
Введенные строчные русские буквы,не становятся прописными.Подскажите,что я сделал не так...
Наверное, не сделали ввод русских букв.

Добавлено через 1 минуту
C++
1
2
3
4
5
6
7
8
#include <windows.h>
 
int main()
{
  SetConsoleCP(1251);
  SetConsoleOutputCP(1251);
  ...
}
В свойствах консоли выбрать шрифт: Lucida Console
-=ЮрА=-
Заблокирован
Автор FAQ
08.07.2013, 00:37     Написать функцию, возвращающую преобразованную к верхнему регистру строку, полученную в качестве аргумента #3
Цитата Сообщение от Alex_lt Посмотреть сообщение
setlocale ( LC_CTYPE, "Russian_Russia.1251" );
попробуй руссифицировать не всё и конечно же лучше просто записать
setlocale ( LC_CTYPE, "RUS" );
Добавлено через 16 секунд
Alex_lt, какой компилятор?
Retyrn0
45 / 45 / 3
Регистрация: 24.06.2013
Сообщений: 675
Завершенные тесты: 1
08.07.2013, 00:41     Написать функцию, возвращающую преобразованную к верхнему регистру строку, полученную в качестве аргумента #4
Цитата Сообщение от Alex_lt Посмотреть сообщение
функция преобразования строчных букв в прописные
А мне одному показалось, что тема и суть темы - противоположные вещи? Верхний регистр - это же строчные, а нижний - прописные...хотя плевать.
Belfegor
Ghost
 Аватар для Belfegor
172 / 172 / 6
Регистрация: 16.09.2012
Сообщений: 524
08.07.2013, 00:41     Написать функцию, возвращающую преобразованную к верхнему регистру строку, полученную в качестве аргумента #5
вот что есть
Миниатюры
Написать функцию, возвращающую преобразованную к верхнему регистру строку, полученную в качестве аргумента  
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
08.07.2013, 00:47     Написать функцию, возвращающую преобразованную к верхнему регистру строку, полученную в качестве аргумента #6
Цитата Сообщение от Belfegor Посмотреть сообщение
вот что есть
У ТС собственная реализация.
-=ЮрА=-
Заблокирован
Автор FAQ
08.07.2013, 00:51     Написать функцию, возвращающую преобразованную к верхнему регистру строку, полученную в качестве аргумента #7
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 не отработает, так что вопрос по компилятору оставил открытым
Миниатюры
Написать функцию, возвращающую преобразованную к верхнему регистру строку, полученную в качестве аргумента  
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
08.07.2013, 01:00     Написать функцию, возвращающую преобразованную к верхнему регистру строку, полученную в качестве аргумента #8
Так тоже работает:
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();
 }
Миниатюры
Написать функцию, возвращающую преобразованную к верхнему регистру строку, полученную в качестве аргумента  
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
08.07.2013, 01:45     Написать функцию, возвращающую преобразованную к верхнему регистру строку, полученную в качестве аргумента #9
Только для 'ё' нужно добавить:
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;
 }
Bend3r
 Аватар для Bend3r
142 / 129 / 17
Регистрация: 29.07.2012
Сообщений: 681
08.07.2013, 03:55     Написать функцию, возвращающую преобразованную к верхнему регистру строку, полученную в качестве аргумента #10
Проще подключить библиотеку cctype. И там есть функции tolower(нижний регистр), toupper(верхний регистр).
Вот еще русский язык в консоле:
Подключаешь #include <Windows>.
И прям в main пишешь
SetConsoleCP(1251);
SetConsoleOutputCP(1251);

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

Не по теме:

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

Bend3r
 Аватар для Bend3r
142 / 129 / 17
Регистрация: 29.07.2012
Сообщений: 681
08.07.2013, 04:18     Написать функцию, возвращающую преобразованную к верхнему регистру строку, полученную в качестве аргумента #13
Цитата Сообщение от Croessmah Посмотреть сообщение

Не по теме:


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

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

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

Не по теме:

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

alsav22
08.07.2013, 04:25
  #15

Не по теме:

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

MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.07.2013, 08:39     Написать функцию, возвращающую преобразованную к верхнему регистру строку, полученную в качестве аргумента
Еще ссылки по теме:

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

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

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

Уже право плеваться хочется когда на какой нибудь хедер говрят библиотека!
Yandex
Объявления
08.07.2013, 08:39     Написать функцию, возвращающую преобразованную к верхнему регистру строку, полученную в качестве аргумента
Ответ Создать тему
Опции темы

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