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

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

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

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

08.02.2012, 16:26. Просмотров 439. Ответов 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 минуты
задача актуальна
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.02.2012, 16:26     Сменя позиций букв
Посмотрите здесь:

Поменять местами первую из букв а и последнюю из букв о C++
C++ Поменять местами первую из букв а и последнюю из букв о
C++ Найти порядковые номера позиций
Строки - замена позиций букв в словах C++
C++ Ввести с клавиатуры целое число N. Используя рекурсию, распечатать сначала последовательность, состоящую из N букв 'А', а затем из N букв 'В'
Вывод в файл, с указание позиций C++
Определить номера позиций гласных букв в данном тексте на русском языке C++
Дано слово. Поменять местами первую из букв а и последнюю из букв о! кто может помчь! C++
C++ Сдвинуть число в двоичной системе на k позиций
Сдвиг одномерного массива на k позиций C++
Напишите программу подсчета суммарного числа букв 'а' и букв 'b' в данной строковой переменной C++
Сдвиг массива вправо на K позиций C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
I.M.
564 / 547 / 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;
}
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];
I.M.
564 / 547 / 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;
R1se
0 / 0 / 0
Регистрация: 05.02.2012
Сообщений: 13
08.02.2012, 22:25  [ТС]     Сменя позиций букв #5
Спасибо разобрался.
Yandex
Объявления
08.02.2012, 22:25     Сменя позиций букв
Ответ Создать тему
Опции темы

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