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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.80
Zer0
4 / 4 / 1
Регистрация: 27.10.2010
Сообщений: 114
#1

Дана строка с набором случайных символов, при вводе 10 букв первые 5 букв становятся большими , вторые 5 букв маленькими - C++

23.04.2011, 10:55. Просмотров 1330. Ответов 11
Метки нет (Все метки)

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

 Комментарий модератора 
Именуйте темы осмысленно. Название темы должно максимально полно отражать ее содержимое.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.04.2011, 10:55
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Дана строка с набором случайных символов, при вводе 10 букв первые 5 букв становятся большими , вторые 5 букв маленькими (C++):

Дана строка символов. Определить количество слов состоящих из четырех букв - C++
#include <iostream.h> #include <string.h> #include <stdio.h> #include <stdlib.h> #include <conio.h> #include <locale.h> int...

Дана строка символов. Подсчитать самую длинную последовательность подряд идущих букв а. - C++
Дана строка символов. Подсчитать самую длинную последовательность подряд идущих букв а.( P.S. напишите полную программу попроще. С++ знаю...

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

Дана строка символов, состоящая из букв, цифр, запятых, точек, знаков «+» и «–». Выделить подстроку, которая соответствует записи вещественного числа - C++
Дана строка символов, состоящая из букв, цифр, запятых, точек, знаков «+» и «–». Выделить подстроку, которая соответствует записи...

Дана строка. Подсчитать, сколько в ней букв r, k, t - C++
Дана строка. Подсчитать, сколько в ней букв r, k, t.

Дана строка. Подсчитать, сколько в ней букв r, k, t - C++
Дана строка. Подсчитать, сколько в ней букв r, k, t.

11
CyBOSSeR
Эксперт С++
2305 / 1675 / 86
Регистрация: 06.03.2009
Сообщений: 3,675
23.04.2011, 11:05 #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <algorithm>
#include <cctype>
#include <iostream>
#include <string>
 
char toUpper(char character) {
  return std::toupper(character);
}
 
char toLower(char character) {
  return std::tolower(character);
}
 
int main() {
  std::string text = "abdtTfgTGY";
 
  std::transform(text.begin()    , text.begin() + 5, text.begin()    , toUpper);
  std::transform(text.begin() + 5, text.end()      , text.begin() + 5, toLower);
 
  std::cout << text << std::endl;
}
0
easybudda
Модератор
Эксперт CЭксперт С++
9698 / 5648 / 964
Регистрация: 25.07.2009
Сообщений: 10,863
23.04.2011, 11:35 #3
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <stdio.h>
#include <ctype.h>
 
void transform(char * buf, size_t size, int (*func)(int)){
    while ( size-- ){
        *buf = (char)func(*buf);
        ++buf;
    }
}
 
int main(void){
    char str[] = "abdtTfgTGY";
    
    printf("Before: %s\n", str);
    transform(str, 5, toupper);
    transform(str + 5, 5, tolower);
    printf("After:  %s\n", str);
    
    return 0;
}
0
Zer0
4 / 4 / 1
Регистрация: 27.10.2010
Сообщений: 114
18.05.2011, 03:29  [ТС] #4
Цитата Сообщение от easybudda Посмотреть сообщение
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <stdio.h>
#include <ctype.h>
 
void transform(char * buf, size_t size, int (*func)(int)){
    while ( size-- ){
        *buf = (char)func(*buf);
        ++buf;
    }
}
 
int main(void){
    char str[] = "abdtTfgTGY";
    
    printf("Before: %s\n", str);
    transform(str, 5, toupper);
    transform(str + 5, 5, tolower);
    printf("After:  %s\n", str);
    
    return 0;
}
Спасибо но мне надо попроще как то, вот то что я сам написал:
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
#include <stdio.h>
#include <string.h>
#include <iostream>
#include <ctype.h>
#include <locale>
using namespace std;
int main()
{
    int e, i,k;
        char a[5];
        cout<<"vvedite stroky\n";
        cin>>a;
        k=strlen(a);
       e = strlen(a)/2;
       for ( i=0; i<e; i++){
           if(isupper(a[i])){
          a[i]=tolower(a[i]);
      }
         else
             a[i]=toupper(a[i]);
         for (e+1;e<k; e++){
                 a[e]=toupper(a[e]);
             cout<<a[i];
             cout<<a[e];
          cin>>a;
        return 0;
    }
     }
      }
Надо строку вводить с клавиатуры, левую часть строки инвертировать,а правую инвертировать только в большие символы. Не могу понять где моя ошибка, инвертирует только 1 символ левой строки и 1 символ правой строки.
0
kazak
3050 / 2371 / 160
Регистрация: 11.03.2009
Сообщений: 5,436
Завершенные тесты: 1
18.05.2011, 03:53 #5
С фигурными скобками разберись.
0
Zer0
4 / 4 / 1
Регистрация: 27.10.2010
Сообщений: 114
18.05.2011, 04:29  [ТС] #6
Цитата Сообщение от kazak Посмотреть сообщение
С фигурными скобками разберись.
Да вроде нормально все, суть не в скобках а в том что прога инвертирует 1-ый символ левой строки и 1-символ правой строки .
0
kazak
3050 / 2371 / 160
Регистрация: 11.03.2009
Сообщений: 5,436
Завершенные тесты: 1
18.05.2011, 07:08 #7
Не вроде, и совсем не нормально. Плюс еще пара косяков есть, но пока разберись со скобками.
0
dampir_sanek
150 / 148 / 21
Регистрация: 09.02.2010
Сообщений: 407
18.05.2011, 07:31 #8
Zer0, держи
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
#include <stdio.h>
#include <string.h>
#include <iostream>
#include <ctype.h>
 
using namespace std;
 
int main()
{
    int e, i,k;
    char a[256];
    cout<<"vvedite stroky\n";
    cin>>a;
    k = strlen(a);
    e = (int) strlen(a)/2;
    for ( i=0; i<e; i++)
        if(!isupper(a[i]))
            a[i]=toupper(a[i]);
 
    for (; e<k; e++)
        a[e]=tolower(a[e]);
 
    cout << a;
    getchar();
    return 0;
}
1
Zer0
4 / 4 / 1
Регистрация: 27.10.2010
Сообщений: 114
18.05.2011, 09:57  [ТС] #9
Цитата Сообщение от dampir_sanek Посмотреть сообщение
Zer0, держи
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
#include <stdio.h>
#include <string.h>
#include <iostream>
#include <ctype.h>
 
using namespace std;
 
int main()
{
    int e, i,k;
    char a[256];
    cout<<"vvedite stroky\n";
    cin>>a;
    k = strlen(a);
    e = (int) strlen(a)/2;
    for ( i=0; i<e; i++)
        if(!isupper(a[i]))
            a[i]=toupper(a[i]);
 
    for (; e<k; e++)
        a[e]=tolower(a[e]);
 
    cout << a;
    getchar();
    return 0;
}
Спасибо,но она немного не доделана вот доделанный вариант:
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
#include <stdio.h>
#include <string.h>
#include <iostream>
#include <ctype.h>
 
using namespace std;
 
int main()
{
    int e, i,k;
    char a[200];
    cout<<"vvedite stroky\n";
    cin>>a;
    k = strlen(a);
    e = (int) strlen(a)/2;
    for ( i=0; i<e; i++)
        if(!isupper(a[i]))
            a[i]=toupper(a[i]);
else
    a[i]=tolower(a[i]);
    for (; e<k; e++)
        a[e]=toupper(a[e]);
    cout << a;
    getchar();
    cin>>a;
    return 0;
}
0
kazak
3050 / 2371 / 160
Регистрация: 11.03.2009
Сообщений: 5,436
Завершенные тесты: 1
18.05.2011, 11:52 #10
Цитата Сообщение от Zer0 Посмотреть сообщение
C++
1
2
3
4
if(!isupper(a[i]))
   a[i]=toupper(a[i]);
else
   a[i]=tolower(a[i]);
Переведу на русский:
Если символ a[i] находится в верхнем регистре, то
перевести его в верхний регистр
иначе (если символ a[i] находится в нижнем регистре)
перевести его в нижний
0
CyBOSSeR
Эксперт С++
2305 / 1675 / 86
Регистрация: 06.03.2009
Сообщений: 3,675
18.05.2011, 14:38 #11
kazak, там ! перед is_upper.
1
kazak
3050 / 2371 / 160
Регистрация: 11.03.2009
Сообщений: 5,436
Завершенные тесты: 1
18.05.2011, 14:42 #12
Недоглядел)
0
18.05.2011, 14:42
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.05.2011, 14:42
Привет! Вот еще темы с ответами:

Дана строка подсчитать количество латинских букв - C++
Дана строка подсчитать количество латинских букв.

Дана строка. Подсчитать, сколько в ней букв r, k, t - C++
Строку запрашивать у пользователя и подсчитывать буквы нужно несколько раз подряд, не выходя из программы. вот мой код: ...

Подсчитать, сколько было введено: латинских прописных букв, кириллических прописных букв, цифр, знаков переноса, прочих символов. - C++
Помогите, пожалуйста, написать программу :scratch: Подсчитать, сколько было введено: латинских прописных букв, кириллических прописных...

Дана строка.Подсчитать в ней количество вхождений букв f,k,t. - C++
Дана строка.Подсчитать в ней количество вхождений букв f,k,t.


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

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

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