Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

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

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

27.06.2011, 13:22. Просмотров 4371. Ответов 21
Метки нет (Все метки)

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

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

Преобразовать в строке строчные (малые) буквы русского алфавита в прописные (заглавные) - C++
Написать программу, которая в введенной с клавиатуры строке преобразует строчные (малые) буквы русского алфавита в прописные (заглавные).

Поменять строчные буквы на заглавные - C++
пользователь вводит строку поменять строчные буквы на заглавные, а заглавные на строчные вывести старую и преобразованную строки ...

Преобразовать строчные буквы в заглавные - C++
Дана строка содержащая текст, записанный строчными буквами. Получить в другой строке тот же текст, записанный заглавными буквами.

Создать функцию LOWER, преобразующую заглавные буквы передаваемой ей строки в строчные - C++
Создать функцию LOWER, преобразующую заглавные буквы передаваемой ей строки в строчные С помощью этой функции преобразовать строку «Happy...

Создать функцию SWAP, преобразующую заглавные буквы передаваемой ей строки в строчные и наоборот - C++
Создать функцию SWAP, преобразующую заглавные буквы передаваемой ей строки в строчные и наоборот. С помощью этой функции преобразовать...

Ввести символьную строку и заменить все буквы "а" на буквы "б" и наоборот, как заглавные, так и строчные. - C++
1. Ввести символьную строку и заменить все буквы "а" на буквы "б" и наоборот, как заглавные, так и строчные. Пример: Введите...

21
rangerx
1935 / 1544 / 141
Регистрация: 31.05.2009
Сообщений: 2,913
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;
}
1
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 секунд
Помогите, пожалуйста, нормализовать работу.
0
rangerx
1935 / 1544 / 141
Регистрация: 31.05.2009
Сообщений: 2,913
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;
}
1
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'овская библиотека не нужна то есть?
0
rangerx
1935 / 1544 / 141
Регистрация: 31.05.2009
Сообщений: 2,913
27.06.2011, 14:19 #6
Ну, раз ты ничего не используешь из этого заголовка, следовательно зачем он тебе? )
Что и для чего нужно подключать смотри здесь
0
mansur512
0 / 0 / 0
Регистрация: 11.11.2015
Сообщений: 16
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)?
0
Melvil
48 / 47 / 13
Регистрация: 20.05.2015
Сообщений: 251
26.12.2015, 15:28 #8
Цитата Сообщение от mansur512 Посмотреть сообщение
А можно тоже самое только без подключаемых библиотек(isupper и toupper)?
Тогда
C++
1
char ch = ch + 32; // Для того, чтобы заглавную в строчную
C++
1
char ch = ch - 32; // Для того, чтобы строчную в заглавную
1
mansur512
0 / 0 / 0
Регистрация: 11.11.2015
Сообщений: 16
26.12.2015, 15:42 #9
Цитата Сообщение от Melvil Посмотреть сообщение
Тогда

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


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

а как все это в код(функция)
просто вообще не въезжаю
0
Melvil
48 / 47 / 13
Регистрация: 20.05.2015
Сообщений: 251
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;
}
1
mansur512
0 / 0 / 0
Регистрация: 11.11.2015
Сообщений: 16
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 *);
Пожалуйста!!!!!
0
GbaLog-
Любитель чаепитий
3030 / 1398 / 337
Регистрация: 24.08.2014
Сообщений: 4,966
Записей в блоге: 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;
}
0
mansur512
0 / 0 / 0
Регистрация: 11.11.2015
Сообщений: 16
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;
}
0
Melvil
48 / 47 / 13
Регистрация: 20.05.2015
Сообщений: 251
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;
}
2
mansur512
0 / 0 / 0
Регистрация: 11.11.2015
Сообщений: 16
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 помогите плиз
0
27.12.2015, 13:13
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.12.2015, 13:13
Привет! Вот еще темы с ответами:

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

Преобразовать в строке все строчные буквы (как латинские, так и русские) в прописные, а прописные — в строчные - C++
Дана строка. Преобразовать в ней все строчные буквы (как латинские, так и русские) в прописные, а прописные — в строчные.

Словов из маленьких букв перевести в заглавные (большие) буквы - C++
Господа-товарищи, есть программа (ниже код), которая осуществляет поиск введенного с клавиатуры слова, как в этом слове заменить маленькие...

Перевести строчные буквы строки в прописные - C++
Подскажите, как исправить ошибку в коде: #include &lt;iostream&gt; #include &lt;string&gt; using namespace std; void main(){ ...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru