Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
4 / 4 / 2
Регистрация: 19.11.2013
Сообщений: 89
1

Работа со строками. Изменить регистр символов

13.12.2014, 23:35. Показов 916. Ответов 0
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Основная задача : Длина L >5 и <30, изменить регистр символов (aBcDeF->AbCdEf)
Не работает именно она, помогите найти в чем ошибка.
Фрагмент замены регистра в строке :
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
void String::run()
{
    unsigned int i = 0, j = 0;
    char *ss;
    ss = new char[MAX];
    ss[0] = '\0';
    if ((strlen(str) > 5) && (strlen(str) < 30))//30.Длина L >5  и <30, изменить регистр символов (aBcDeF->AbCdEf)
    {
        for (i = 0; strlen(str); i++)
        {
            if (str[i] >= 97)// алгоритм смены регистра if (str[i] >= 97) -32
            {
                ss[j] = str[i] - 32;
                j++;
            }
            else
            {
                if (str[i] <= 97)// алгоритм смены регистра if (str[i] <= 97) +32
                {
                    ss[j] = str[i] + 32;
                    j++;
                };
            }
            ss[j] = '\0';
            str[0] = '\0';
            cout << "\nStroka REGISTR: " << ss[j];
        }
        //ss[j] = '\0';
        //str[0] = '\0';
        //cout << "\nStroka REGISTR: " << ss[j];
    }
    else
    {
        cout << "\nSTROKANESTROKA";
    }
}
Код программы:
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
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
#include "stdafx.h"
#include <iostream>
#include <istream> //dlya cin.getline()
#include <string.h>
#include <conio.h>
#include <fstream>
#ifdef _MSC_VER
#define _CRT_SECURE_NO_WARNINGS
#endif
const int MAX = 255;
using namespace std;
class String
{
private:
    char *str;
    char *strend;
public:
    String();
    void set();//metod vvoda ish. stroki
    void print();//metod pechati
    void run();//metod vipolneniya zadachi
    void printend();//metod pechati strend
    String& operator= (String&);
    ~String();
};
String::String()
{
    str = new char[MAX];
    str[0] = '\0';
    strend = new char[MAX];
    strend[0] = '\0';
    //cout << "Constructor!";
}
String& String::operator= (String&ss)//s2=s1 peregruz '='
{
    strcpy(strend, ss.str);
    return *this;//default
}
String::~String()
{
    delete[]str;
    delete[]strend;
    //cout << "Destructor!";
}
void String::run()
{
    unsigned int i = 0, j = 0;
    char *ss;
    ss = new char[MAX];
    ss[0] = '\0';
    if ((strlen(str) > 5) && (strlen(str) < 30))//30.Длина L >5  и <30, изменить регистр символов (aBcDeF->AbCdEf)
    {
        for (i = 0; strlen(str); i++)
        {
            if (str[i] >= 97)// алгоритм смены регистра if (str[i] >= 97) -32
            {
                ss[j] = str[i] - 32;
                j++;
            }
            else
            {
                if (str[i] <= 97)// алгоритм смены регистра if (str[i] <= 97) +32
                {
                    ss[j] = str[i] + 32;
                    j++;
                };
            }
            ss[j] = '\0';
            str[0] = '\0';
            cout << "\nStroka REGISTR: " << ss[j];
        }
        //ss[j] = '\0';
        //str[0] = '\0';
        //cout << "\nStroka REGISTR: " << ss[j];
    }
    else
    {
        cout << "\nSTROKANESTROKA";
    }
}
void String::set()
{
    cout << "Vvedite stroku: ";
    char *stroka = new char[MAX];
    stroka[0] = '\0';
    cin.getline(stroka, MAX);// впринципе getline не нужен
    for (unsigned int i = 0; i<strlen(stroka); i++)
    {
        str[i] = stroka[i];
    }
    str[strlen(stroka)] = '\0';
    delete[]stroka;
}
void String::print()
{
    ofstream file("file.txt", ios::app);
    for (unsigned int i = 0; i<strlen(str); i++)
    {
        cout << str[i];
    }
    file << endl;
    for (unsigned int i = 0; i<strlen(str); i++)
    {
        file << str[i];
    }
}
void String::printend()
{
    cout << "\nSkopirovannaya stroka: ";
    for (unsigned int i = 0; i<strlen(strend); i++)
    {
        cout << strend[i];
    }
}
void main(void)
{
    ofstream file("file.txt", ios::out);
    String s1, s2;
    s1.set();
    s1.print();
    s1.run();
    s1.print();
    s2 = s1;
    s2.printend();
    cout << "\n" << endl;
    String *s3, *s4;
    s3 = new String; s4 = new String;
    s3->set();
    s3->print();
    s3->run();
    s3->print();
    *s4 = *s3;
    s4->printend();
    cout << "\n" << endl;
    system("PAUSE");
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
13.12.2014, 23:35
Ответы с готовыми решениями:

Изменить регистр символов в строке по условию
Есть задача: Для заданной строки во всех словах, в которых встречаются только буквы в...

Изменить регистр символов строки на противоположный
2. Измените регистр символа, если он был латинской буквой: сделайте его заглавным, если он был...

Изменить регистр символов текстовой строки
Изменить регистр символов текстовой строки на противоположный

Как изменить регистр всех символов в String?
Подскажите, пожалуйста - &quot;как привести регистр всех символов, находящихся в string к нижнему...

0
13.12.2014, 23:35
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
13.12.2014, 23:35
Помогаю со студенческими работами здесь

Как в TEdit изменить регистр вводимых символов?
Подскажите как в Edit изменить регистр букв ввода, в данном случае должны быть все большие. XE 5...

Работа с файлами. Измените регистр алфавитных символов текста
В файле test.in записан текст на английском языке. Измените регистр алфавитных символов. (Пример:...

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

Работа со строками символов
Помогите решить пжл. Дан текст (2-3 строки) в файле F1. Описать функцию преобразования строки,...


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

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