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

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

Войти
Регистрация
Восстановить пароль
 
R1se
0 / 0 / 0
Регистрация: 05.02.2012
Сообщений: 13
#1

Сменя позиций букв - C++

08.02.2012, 16:26. Просмотров 457. Ответов 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
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
#include <cstdlib>
#include <iostream>
 
using namespace std;
 
void changePosition(char str2[256])
{
    int q = strlen(str2);
    char r = str2[0];
    str2[0] = str2[q-1];
    str2[q-1] = r;
}
 
void str()
{
    char str[] = "Faculty of Information technology ";
    int a = strlen(str);
    char str2[256];
    int i,j;
    
    for(i=0,j=0;i<a;i++)
    {
        if(str[i]!=' ')
        {
            str2[j] = str[i];
            j++;
        }
        else if(str[i]==' ')
        {
            changePosition(str2);
            printf("%s ",str2);
            
            for(int i=0;i<=a;i++)
            {
                str2[i] = 0;
            }
            
            j=0;
        }
    }    
}
 
int main()
{
    str();
    printf("\n");
    
    system("PAUSE");
    return EXIT_SUCCESS;
}
Работает, но есть косяки. Если стереть пробел после "Faculty of Information technology " теряется "technology". Так же, если указать перед " Faculty" пробел, швабра казябра сного получится.

Добавлено через 18 часов 33 минуты
задача актуальна
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.02.2012, 16:26
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Сменя позиций букв (C++):

Строки - замена позиций букв в словах - C++
Очень прошу всех помочь со строковыми данными, буду признательна если поможете решить эту задачу: Написать программу циклической...

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

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

Напишите программу подсчета суммарного числа букв 'а' и букв 'b' в данной строковой переменной - C++
Напишите программу подсчета суммарного числа букв 'а' и букв 'b' в данной строковой переменной. Вывести на экран каких букв больше. ...

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

В строке слов из букв латинского алфавита найти слова, в которых нет букв, которые повторяются. - C++
В строке слов из букв латинского алфавита найти слова, в которых нет букв, которые повторяются.

4
I.M.
566 / 549 / 5
Регистрация: 16.12.2011
Сообщений: 1,389
08.02.2012, 17:14 #2
Если я верно понял суть задачи, то вот. Старался написать попроще

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
#include <iostream>
#include <string.h>
 
void str(char* text)
{
    int size = strlen(text);        
    int begin = -1;  
      
    for(int i = 0;i < size;++i)
    {
       if(begin == -1)
       {
          if(text[i]!=' ')begin = i;
       }
       else if(text[i]==' ')
       {
          std::swap(text[begin],text[i-1]);
          begin = -1;
       }
    }
    if(begin!=-1)std::swap(text[begin],text[size-1]);
    return;   
}
 
int main()
{
    char text[] = "  Faculty of Information technology";
    
    std::cout << text << std::endl;
    str(text);     
    std::cout << text << std::endl;
    return 0;
}
2
R1se
0 / 0 / 0
Регистрация: 05.02.2012
Сообщений: 13
08.02.2012, 20:54  [ТС] #3
Спасибо большоe и можно узнать о функции swap();?
И чем её заменить (swap не проходили, препод скажет переделывай).
P.S. Как до меня первый раз дошло, что swap(text[begin],text[i-1]); будет равно text[begin] = text[i-1];
0
I.M.
566 / 549 / 5
Регистрация: 16.12.2011
Сообщений: 1,389
08.02.2012, 22:07 #4
Не совсем. Эта функция меняет местами значения переменных. Подобное вы делали в функции changePosition.
Иначе говоря std::swap(a,b) равносильно
C++
1
2
3
int c = a;
a = b;
b = c;
1
R1se
0 / 0 / 0
Регистрация: 05.02.2012
Сообщений: 13
08.02.2012, 22:25  [ТС] #5
Спасибо разобрался.
0
08.02.2012, 22:25
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.02.2012, 22:25
Привет! Вот еще темы с ответами:

Сдвиг одномерного массива на k позиций - C++
Дан массив целых чисел длиной n. Осуществить циклический сдвиг вправо на k позиций. Последние k элементов поставить на первое место. ...

Вывод в файл, с указание позиций - C++
Всем привет! Позвольте доходчиво объяснить вопрос? Допустим есть мап: map&lt;uint32, vector&lt;string&gt; &gt; myMap Ключ это как отдельная...

Найти порядковые номера позиций - C++
Дана строка. Найти порядковые номера позиций всех запятых в этой строке. Если строка не содержит запятых либо содержит только одну запятую,...

Сдвиг массива вправо на K позиций - C++
Даны натуральные числа N, K и массив из N целых чисел. Требуется, не используя дополнительные массивы, циклически сдвинуть элементы...


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

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

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