0 / 0 / 0
Регистрация: 21.05.2013
Сообщений: 25
1

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

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

Author24 — интернет-сервис помощи студентам
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
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
08.07.2013, 00:28
Ответы с готовыми решениями:

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

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

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

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

15
5498 / 4893 / 831
Регистрация: 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
1
Заблокирован
Автор FAQ
08.07.2013, 00:37 3
Цитата Сообщение от 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 4
Цитата Сообщение от Alex_lt Посмотреть сообщение
функция преобразования строчных букв в прописные
А мне одному показалось, что тема и суть темы - противоположные вещи? Верхний регистр - это же строчные, а нижний - прописные...хотя плевать.
0
Ghost
174 / 174 / 40
Регистрация: 16.09.2012
Сообщений: 526
08.07.2013, 00:41 5
вот что есть
Миниатюры
Написать функцию, возвращающую преобразованную к верхнему регистру строку, полученную в качестве аргумента  
0
5498 / 4893 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
08.07.2013, 00:47 6
Цитата Сообщение от Belfegor Посмотреть сообщение
вот что есть
У ТС собственная реализация.
0
Заблокирован
Автор 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 не отработает, так что вопрос по компилятору оставил открытым
Миниатюры
Написать функцию, возвращающую преобразованную к верхнему регистру строку, полученную в качестве аргумента  
1
5498 / 4893 / 831
Регистрация: 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();
 }
Миниатюры
Написать функцию, возвращающую преобразованную к верхнему регистру строку, полученную в качестве аргумента  
0
5498 / 4893 / 831
Регистрация: 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;
 }
0
150 / 137 / 35
Регистрация: 29.07.2012
Сообщений: 709
08.07.2013, 03:55 10
Проще подключить библиотеку cctype. И там есть функции tolower(нижний регистр), toupper(верхний регистр).
Вот еще русский язык в консоле:
Подключаешь #include <Windows>.
И прям в main пишешь
SetConsoleCP(1251);
SetConsoleOutputCP(1251);

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

Не по теме:

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

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

Не по теме:


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

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

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

Не по теме:

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

0
alsav22
08.07.2013, 04:25
  #15

Не по теме:

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

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

Уже право плеваться хочется когда на какой нибудь хедер говрят библиотека!
2
08.07.2013, 08:39
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
08.07.2013, 08:39
Помогаю со студенческими работами здесь

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
16
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru