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

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

15.04.2021, 14:18. Показов 1525. Ответов 2

Сказали решить string - ами
Вот задание
char * Uppercase (char * str1); - функция преобразует строку в верхний регистр и возвращает указатель на новую строку
char * Lowercase (char * str1); - функция преобразует строку в нижний регистр и возвращает указатель на новую строку
char * mystrrev (char * str); - функция реверсирует строку и возвращает указатель на новую строку

Что-то не получается, помогите чайнику

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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
#include <iostream>
#include <string>
#include <cstring>
 
constexpr auto WINDOWS = "russian";
constexpr auto LINUX = "ru_RU.UTF-8";
void set_header();
 
void Print_String(std::string& My_str);
std::string Upper_Case(std::string* My_str, size_t Size_My_Str);
std::string Lower_Case(std::string* My_str, size_t Size_My_Str);
std::string My_Str_Reverse(std::string* My_str, size_t Size_My_Str);
 
 
 
 
 
int main()
{
    setlocale(LC_ALL, WINDOWS);
    // SetConsoleCP(1251); // При работе со строками русские вводимые с помощью оператора "cin" отображаются правильно
    // SetConsoleOutputCP(1251);
    std::cout << std::endl;
    set_header();
    std::cout << std::endl;
 
    ///===================================================================
    std::cout << "===================================================" << std::endl;
    ///===================================================================
 
    std::string My_String;
    My_String = "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.";
    Print_String(My_String);
 
 
 
 
 
    ///===================================================================
    std::cout << "===================================================" << std::endl;
    ///===================================================================
 
    std::cout << std::endl;
    system("pause");
    system("cls");
    return(0);
}
 
void set_header()
{
    std::cout << std::endl;
    std::cout << "\t\t\t\tОсновы программирования на языке С++. \n";
    std::cout << "\t\t\t\tТема: Строки\n";
    
    std::cout << "\tchar * Uppercase (char * str1); - функция преобразует строку в верхний регистр и возвращает указатель на новую строку\n";
    std::cout << "\tchar * Lowercase (char * str1); - функция преобразует строку в нижний регистр и возвращает указатель на новую строку\n";
    std::cout << "\tchar * mystrrev (char * str); - функция реверсирует строку и возвращает указатель на новую строку\n";
    std::cout << std::endl;
}
 
void Print_String(std::string& My_str) {
    std::cout << My_str;
    std::cout << std::endl;
}
 
std::string Upper_Case(std::string* My_str, size_t Size_My_Str) {
    size_t Size_My_Str = My_str.length();
    for (size_t i = 0; i < Size_My_Str; i++) {
        if (My_str[i] > 64 && My_str[i] < 91) My_str[i] += 32;
    }
    return *My_str;
}
 
std::string Lower_Case(std::string* My_str, size_t Size_My_Str) {
    for (size_t i = 0; i < Size_My_Str; i++) {
        if (My_str[i] > 96 && My_str[i] < 123) My_str[i] -= 32;
    }
    return *My_str;
}
 
std::string My_Str_Reverse(std::string* My_str, size_t Size_My_Str) {
    for (size_t i = 0; i < (Size_My_Str - 1) / 2; i++) {
        std::swap(My_str[(Size_My_Str - 1) - i], My_str[i]);
    }
    return *My_str;
}
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
15.04.2021, 14:18
Ответы с готовыми решениями:

Разработать и испытать функцию, которая переворачивает строку и возвращает указатель на перевёрнутую строку
Разработать и испытать функцию, которая переворачивает строку и возвращает указатель на...

Написать функцию преобразующую строку в верхний регистр
2.char * Uppercase (char * str1); - функция преобразует строку в верхний регистр. можете...

Строка: Определить функцию, которая строку преобразует в одноуровневый список.
Определить функцию, которая строку преобразует в одноуровневый список. Например из &quot;aa:bb:cccc:kk&quot;...

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

2
Модератор
Эксперт С++
12098 / 9771 / 5908
Регистрация: 18.12.2011
Сообщений: 26,229
15.04.2021, 17:15 2
Лучший ответ Сообщение было отмечено solvo23 как решение

Решение

Вот коды Ваших функций
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
#include <string>
#include <algorithm>
#include <ctype.h>
std::string& Upper_Case(std::string* My_str) {
    std::transform(My_str->begin(),My_str->end(),My_str->begin(),toupper);
    return *My_str;
}
 
std::string& Lower_Case(std::string* My_str) {
    std::transform(My_str->begin(),My_str->end(),My_str->begin(),tolower);
    return *My_str;
}
 
std::string& My_Str_Reverse(std::string* My_str) {  
    std::reverse(My_str->begin(),My_str->end());
    return *My_str;
}
Смею заметить, что они нигде в main не вызываются.
И мне непонятно, почему в них передаете указатель, а не ссылку:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
std::string& Upper_Case(std::string& My_str) {
    std::transform(My_str.begin(),My_str.end(),My_str.begin(),toupper);
    return My_str;
}
 
std::string& Lower_Case(std::string& My_str) {
    std::transform(My_str.begin(),My_str.end(),My_str.begin(),tolower);
    return My_str;
}
 
std::string& My_Str_Reverse(std::string& My_str) {  
    std::reverse(My_str.begin(),My_str.end());
    return My_str;
}
1
2 / 2 / 0
Регистрация: 05.02.2021
Сообщений: 113
17.04.2021, 13:49  [ТС] 3
В main не вызываются потому что на этапе уже такого написания функции редактор подчеркивал красным
просто хотел написать не библиотечные а именно свои функции
а по указателю потому что слабо его понял и поэтому пытаюсь его везде применять
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
17.04.2021, 13:49
Помогаю со студенческими работами здесь

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

Создать функцию, которая принимает в качестве аргумента ссылку на string, и преобразует все буквы в верхний регистр
Задание такое: нужно создать функцию, которая принимает в качестве аргумента ссылку на string, и...

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

Написать и протестировать функцию, которая преобразует строку 8-х цифр в эквивалентное ей целое 10-е число
ПОМОГИТЕ ПЛИЗ Написать и протестировать функцию, которая преобразует строку 8-х цифр в...

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

Написать и протестировать функцию, которая преобразует строку шестнадцатеричных цифр в эквивалентное ей целое десятичное число
Написать и протестировать функцию, которая преобразует строку шестнадцатеричных цифр в...


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

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

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