Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.88/8: Рейтинг темы: голосов - 8, средняя оценка - 4.88
Zer0
4 / 4 / 1
Регистрация: 27.10.2010
Сообщений: 114
1

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

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

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

 Комментарий модератора 
Именуйте темы осмысленно. Название темы должно максимально полно отражать ее содержимое.
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.04.2011, 10:55
Ответы с готовыми решениями:

Дана строка символов. Определить количество букв латинского алфавита
Дана строка символов. Определить количество букв латинского алфавита.Задача с++

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

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

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

Дана строка символов. Удалить из данной строки все группы букв вида asdf
На выходе такая же строка, как и на входе. //Дана строка символов //Удалить из данной строки...

11
CyBOSSeR
Эксперт С++
2319 / 1692 / 148
Регистрация: 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
Модератор
Эксперт JavaЭксперт CЭксперт С++
10621 / 6303 / 1582
Регистрация: 25.07.2009
Сообщений: 12,017
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
18.05.2011, 03:29
kazak
3065 / 2386 / 255
Регистрация: 11.03.2009
Сообщений: 5,444
Завершенные тесты: 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
3065 / 2386 / 255
Регистрация: 11.03.2009
Сообщений: 5,444
Завершенные тесты: 1
18.05.2011, 07:08 7
Не вроде, и совсем не нормально. Плюс еще пара косяков есть, но пока разберись со скобками.
0
dampir_sanek
151 / 149 / 44
Регистрация: 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
3065 / 2386 / 255
Регистрация: 11.03.2009
Сообщений: 5,444
Завершенные тесты: 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
Эксперт С++
2319 / 1692 / 148
Регистрация: 06.03.2009
Сообщений: 3,675
18.05.2011, 14:38 11
kazak, там ! перед is_upper.
1
kazak
3065 / 2386 / 255
Регистрация: 11.03.2009
Сообщений: 5,444
Завершенные тесты: 1
18.05.2011, 14:42 12
Недоглядел)
0
18.05.2011, 14:42
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.05.2011, 14:42

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

Заменить в последовательности символов каждую группу букв child группой букв children
Даны натуральное число n , символы S1, .... Sn. Заменить в последовательности S1, .... Sn, каждую...

Дана строка символов. Определить, каких букв больше в этом тексте, больших латинских букв или малых
Дана строка символов. Определить, каких букв больше в этом тексте, больших латинских букв или...


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

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

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