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

В алфавитной строке перевести строчные буквы в заглавные и заглавные в строчные - C++

Восстановить пароль Регистрация
 
 
Рейтинг: Рейтинг темы: голосов - 31, средняя оценка - 4.71
Liy
3 / 3 / 0
Регистрация: 08.06.2011
Сообщений: 11
27.06.2011, 13:22     В алфавитной строке перевести строчные буквы в заглавные и заглавные в строчные #1
В заданой алфавитной строке перевести строчные буквы в заглавные и заглавные в строчные.

Со строковыми функциями еще не доводилось работать. Помогите, пожалуйста.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.06.2011, 13:22     В алфавитной строке перевести строчные буквы в заглавные и заглавные в строчные
Посмотрите здесь:

Поменять строчные буквы на заглавные C++
Ввести символьную строку и заменить все буквы "а" на буквы "б" и наоборот, как заглавные, так и строчные. C++
C++ Преобразовать строчные буквы в заглавные
Создать функцию LOWER, преобразующую заглавные буквы передаваемой ей строки в строчные C++
Создать функцию SWAP, преобразующую заглавные буквы передаваемой ей строки в строчные и наоборот C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
rangerx
1908 / 1517 / 139
Регистрация: 31.05.2009
Сообщений: 2,876
27.06.2011, 13:34     В алфавитной строке перевести строчные буквы в заглавные и заглавные в строчные #2
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <stdio.h>
#include <ctype.h>
 
int main()
{
    char s[256];
    char* pch;
 
    scanf("%255[^\n]", s);
    for(pch = s; *pch; ++pch)
        *pch = islower(*pch)? toupper(*pch) : tolower(*pch);
 
    puts(s);
 
    return 0;
}
Liy
3 / 3 / 0
Регистрация: 08.06.2011
Сообщений: 11
27.06.2011, 13:43  [ТС]     В алфавитной строке перевести строчные буквы в заглавные и заглавные в строчные #3
Попробовал написать сам, но она не работает, при этом ошибок нет.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <stdafx.h>
#include <ctype.h>
#include <string.h>
#include <iostream>
int main() {
 char p[6]="aBcDe";
    int i;
 
    for(i = 0; p[i]; i++) {
if(isupper(p[i]))
p[i] = tolower(p[i]);
else
if(islower(p[i]))
p[i] = toupper(p[i]);
    }
    printf ( "%d", p[i]);
    return 0;
    system ("pause");
}
Добавлено через 28 секунд
Помогите, пожалуйста, нормализовать работу.
rangerx
1908 / 1517 / 139
Регистрация: 31.05.2009
Сообщений: 2,876
27.06.2011, 14:02     В алфавитной строке перевести строчные буквы в заглавные и заглавные в строчные #4
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <stdafx.h>
#include <ctype.h>
#include <stdio.h>
#include <stdlib.h>
//#include <iostream>
 
int main()
{
    char p[6] = "aBcDe";
    int i;
 
    for (i = 0; p[i]; i++)
    {
        if (isupper(p[i]))
            p[i] = tolower(p[i]);
        else if (islower(p[i]))
            p[i] = toupper(p[i]);
    }
    printf("%s", p);
    system ("pause");
 
    return 0;
}
Liy
3 / 3 / 0
Регистрация: 08.06.2011
Сообщений: 11
27.06.2011, 14:07  [ТС]     В алфавитной строке перевести строчные буквы в заглавные и заглавные в строчные #5
Цитата Сообщение от rangerx Посмотреть сообщение
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <stdafx.h>
#include <ctype.h>
#include <stdio.h>
#include <stdlib.h>
//#include <iostream>
 
int main()
{
    char p[6] = "aBcDe";
    int i;
 
    for (i = 0; p[i]; i++)
    {
        if (isupper(p[i]))
            p[i] = tolower(p[i]);
        else if (islower(p[i]))
            p[i] = toupper(p[i]);
    }
    printf("%s", p);
    system ("pause");
 
    return 0;
}
iostream'овская библиотека не нужна то есть?
rangerx
1908 / 1517 / 139
Регистрация: 31.05.2009
Сообщений: 2,876
27.06.2011, 14:19     В алфавитной строке перевести строчные буквы в заглавные и заглавные в строчные #6
Ну, раз ты ничего не используешь из этого заголовка, следовательно зачем он тебе? )
Что и для чего нужно подключать смотри здесь
mansur512
0 / 0 / 0
Регистрация: 11.11.2015
Сообщений: 13
26.12.2015, 15:24     В алфавитной строке перевести строчные буквы в заглавные и заглавные в строчные #7
Цитата Сообщение от Liy Посмотреть сообщение
#include <stdafx.h>
#include <ctype.h>
#include <stdio.h>
#include <stdlib.h>
//#include <iostream>
int main()
{
* * char p[6] = "aBcDe";
* * int i;
for (i = 0; p[i]; i++)
* * {
* * * * if (isupper(p[i]))
* * * * * * p[i] = tolower(p[i]);
* * * * else if (islower(p[i]))
* * * * * * p[i] = toupper(p[i]);
* * }
* * printf("%s", p);
* * system ("pause");
return 0;
}
А можно тоже самое только без подключаемых библиотек(isupper и toupper)?
Melvil
 Аватар для Melvil
47 / 46 / 13
Регистрация: 20.05.2015
Сообщений: 246
26.12.2015, 15:28     В алфавитной строке перевести строчные буквы в заглавные и заглавные в строчные #8
Цитата Сообщение от mansur512 Посмотреть сообщение
А можно тоже самое только без подключаемых библиотек(isupper и toupper)?
Тогда
C++
1
char ch = ch + 32; // Для того, чтобы заглавную в строчную
C++
1
char ch = ch - 32; // Для того, чтобы строчную в заглавную
mansur512
0 / 0 / 0
Регистрация: 11.11.2015
Сообщений: 13
26.12.2015, 15:42     В алфавитной строке перевести строчные буквы в заглавные и заглавные в строчные #9
Цитата Сообщение от Melvil Посмотреть сообщение
Тогда

char ch = ch + 32; // Для того, чтобы заглавную в строчную


char ch = ch - 32; // Для того, чтобы строчную в заглавную

а как все это в код(функция)
просто вообще не въезжаю
Melvil
 Аватар для Melvil
47 / 46 / 13
Регистрация: 20.05.2015
Сообщений: 246
26.12.2015, 15:53     В алфавитной строке перевести строчные буквы в заглавные и заглавные в строчные #10
Цитата Сообщение от mansur512 Посмотреть сообщение
а как все это в код(функция)
просто вообще не въезжаю
Универсальная функция, переводит символ верхнего регистра в нижний и наоборот:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
using namespace std;
 
char RevIt(char ch)
{
    if (ch > 96)
        ch = ch - 32;
    else
        ch = ch + 32;
    return ch;
}
 
int main()
{
    char ch;
    cin >> ch;
    ch = RevIt(ch);
    cout << ch << endl;
}
mansur512
0 / 0 / 0
Регистрация: 11.11.2015
Сообщений: 13
26.12.2015, 19:11     В алфавитной строке перевести строчные буквы в заглавные и заглавные в строчные #11
#include "stdafx.h"

#include <iostream>

using namespace std;

int _tmain(int argc, _TCHAR* argv[])
{
char b[8] = "RussiE";
char p[8] = "rUSSIe";



for (int i = 0; p[i]; i++)
{
if (p[i] > 96)
p[i] = p[i] - 32;

else
p[i] = p[i] + 32;

}
cout << "pervoye : " << b << endl;
cout << "vtoroye : " << p << endl;
system("pause");
return 0;
}

а можно эту формулу через функцию и pointers сделать, прототип его один из них должен
void podmena(char *, int);
void podmena(char *);
Пожалуйста!!!!!
GbaLog-
Не Эксперт C++
1527 / 631 / 176
Регистрация: 24.08.2014
Сообщений: 2,560
Записей в блоге: 1
Завершенные тесты: 2
26.12.2015, 19:17     В алфавитной строке перевести строчные буквы в заглавные и заглавные в строчные #12
mansur512, Проблема то в чём?
C++
1
2
3
4
5
6
7
8
9
10
char* RevIt(char* ch)
{
    int size = strlen( ch );
    for( int i = 0; i < size; i++ ) {
        if (ch[i] > 96)
            ch[i] = ch[i] - 32;
        else
            ch[i] = ch[i] + 32;
    return ch;
}
mansur512
0 / 0 / 0
Регистрация: 11.11.2015
Сообщений: 13
26.12.2015, 19:39     В алфавитной строке перевести строчные буквы в заглавные и заглавные в строчные #13
Цитата Сообщение от makfak Посмотреть сообщение
Проблема то в чём?
проблема в том что вот этот код должен быть написан с помощью функции void и pointer, прототип функции один из них :
void podmena(char *, int);
void podmena(char *);


#include "stdafx.h"

#include <iostream>

using namespace std;

int _tmain(int argc, _TCHAR* argv[])
{
char p[8] = "RussiE";
cout << "pervoye : " << p << endl;



for (int i = 0; p[i]; i++)
{
if (p[i] > 96)
p[i] = p[i] - 32;

else
p[i] = p[i] + 32;

}

cout << "vtoroye : " << p << endl;
system("pause");
return 0;
}
Melvil
 Аватар для Melvil
47 / 46 / 13
Регистрация: 20.05.2015
Сообщений: 246
26.12.2015, 19:50     В алфавитной строке перевести строчные буквы в заглавные и заглавные в строчные #14
makfak, Вы забыли вторую фигурную скобку для цикла.

mansur512, вам нужно было всего лишь подставить функцию в вашу программу:

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
#include <iostream>
using namespace std;
 
char* RevIt(char* ch)
{
    int size = strlen(ch);
    for (int i = 0; i < size; i++) 
    {
        if (ch[i] > 96)
            ch[i] = ch[i] - 32;
        else
            ch[i] = ch[i] + 32;
    }
    return ch;
}
 
int _tmain(int argc, _TCHAR* argv[])
{
    char p[8] = "RussiE";
    char *pointer = p;
    cout << "pervoye : " << p << endl;
    cout << "vtoroye : " << RevIt(pointer) << endl;
    system("pause");
    return 0;
}
mansur512
0 / 0 / 0
Регистрация: 11.11.2015
Сообщений: 13
27.12.2015, 13:13     В алфавитной строке перевести строчные буквы в заглавные и заглавные в строчные #15
#include "stdafx.h"
#include <iostream>

using namespace std;


void podmena(char *array1, char *array2);


int _tmain(int argc, _TCHAR* argv[])
{
char array1[100] = { "C++" };
char array2[100] = { "Programing" };

cout << "1 array : " << array1 << endl
<< "2 array : " << array2 << endl;
cout << endl;
podmena(array1, array2);


system("pause");
return 0;
}

void podmena(char *array1, char *array2)
{
char temp = *array1;
*array1 = *array2;
*array2 = temp;


cout << "1 array : " << array1 << endl
<< "2 array : " << array2 << endl;
}

ребята что делаю не так?

должно быть вот так

1 array : C++
2 array : Programing

1 array : Programing
2 array : C++

а выходит вот так
1 array : C++
2 array : Programing

1 array : P++
2 array : Crogramıng

помогите плиз!!

Добавлено через 7 минут
melvil помогите плиз
Melvil
 Аватар для Melvil
47 / 46 / 13
Регистрация: 20.05.2015
Сообщений: 246
27.12.2015, 13:14     В алфавитной строке перевести строчные буквы в заглавные и заглавные в строчные #16
Цитата Сообщение от mansur512 Посмотреть сообщение
ребята что делаю не так?
Вы меняете значения нулевых элементов массивов, для того, чтобы сделать, как вы хотели - нужно создать цикл и менять элементы, инкрементируя один указатель и декрементируя другой.
mansur512
0 / 0 / 0
Регистрация: 11.11.2015
Сообщений: 13
27.12.2015, 13:17     В алфавитной строке перевести строчные буквы в заглавные и заглавные в строчные #17
Цитата Сообщение от Melvil Посмотреть сообщение
Вы меняете значения нулевых элементов массивов, для того, чтобы сделать, как вы хотели - нужно создать цикл и менять элементы, инкрементируя один указатель и декрементируя другой.
как это исправить я не понимаю!!!
GbaLog-
Не Эксперт C++
1527 / 631 / 176
Регистрация: 24.08.2014
Сообщений: 2,560
Записей в блоге: 1
Завершенные тесты: 2
27.12.2015, 13:21     В алфавитной строке перевести строчные буквы в заглавные и заглавные в строчные #18
Цитата Сообщение от mansur512 Посмотреть сообщение
C++
1
char temp = *array1;
Это символьная переменная, то есть в копируете только 1-й символ каждой строки.

Не по теме:

P.S. Выделяйте код тегами уже, читать невозможно.

mansur512
0 / 0 / 0
Регистрация: 11.11.2015
Сообщений: 13
27.12.2015, 13:33     В алфавитной строке перевести строчные буквы в заглавные и заглавные в строчные #19
Цитата Сообщение от makfak Посмотреть сообщение
char temp = *array1;
но нужно как то что б он все символы скопировал!!!
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.12.2015, 13:45     В алфавитной строке перевести строчные буквы в заглавные и заглавные в строчные
Еще ссылки по теме:

Работа со строкой (удалить все цифры, подсчитать количество и сумму удаленных цифр, заменить все заглавные латинские буквы на строчные) C++
Словов из маленьких букв перевести в заглавные (большие) буквы C++
C++ Все заглавные буквы строки нужно перевести в нижний регистр

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

Или воспользуйтесь поиском по форуму:
GbaLog-
Не Эксперт C++
1527 / 631 / 176
Регистрация: 24.08.2014
Сообщений: 2,560
Записей в блоге: 1
Завершенные тесты: 2
27.12.2015, 13:45     В алфавитной строке перевести строчные буквы в заглавные и заглавные в строчные #20
mansur512, В общем я не сильно разбираюсь в строках типа char*, поэтому могу только предложить использовать функцию swap.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
#include <cstring>
#include <conio.h>
 
using namespace std;
 
int main() {
    char* ch = "C++";
    char* ch2 = "Programming";
    cout << ch << "\n";
    cout << ch2 << "\n\n";
    swap( ch, ch2 );
    cout << ch << "\n";
    cout << ch2 << "\n";
    getch();
    return 0;
}
Добавлено через 4 минуты
mansur512, Ну или использовать шаблоны, например.
code
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
#include <iostream>
#include <cstring>
#include <conio.h>
 
using namespace std;
 
template<class T>
void replace( T& x, T& y ) {
    T tmp = x;
    x = y;
    y = tmp;
}
 
int main() {
    char* ch = "C++";
    char* ch2 = "Programming";
    cout << ch << "\n";
    cout << ch2 << "\n\n";
    replace( ch, ch2 );
    cout << ch << "\n";
    cout << ch2 << "\n\n";
    getch();
    return 0;
}
Yandex
Объявления
27.12.2015, 13:45     В алфавитной строке перевести строчные буквы в заглавные и заглавные в строчные
Ответ Создать тему
Опции темы

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