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

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

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 4.82
Стасечка
1 / 1 / 0
Регистрация: 08.05.2011
Сообщений: 73
20.10.2011, 12:20     Поменять местами первую букву со второй, третью – с четвертой и т.д. #1
Дано слово из четного числа букв. Поменять местами первую букву со второй, третью – с четвертой и т.д.
Помогите,пожалуйста.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.10.2011, 12:20     Поменять местами первую букву со второй, третью – с четвертой и т.д.
Посмотрите здесь:

C++ Дан двухмерный массив. Поменять местами первую и третью строки.
C++ дано слово из чётного количества букв.поменять местами первую и вторую букву третью и четвёртую букву и тд.
В каждом слове заданного предложения поменять местами первую букву и последнюю C++
C++ У каждого слова введенной строки поменять местами первую и последнюю букву.
C++ Дано слово. Поменять местами первую букву со второй, третью - с четвертой и т.д
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
PointsEqual
ниначмуроФ
 Аватар для PointsEqual
832 / 516 / 33
Регистрация: 12.10.2009
Сообщений: 1,915
20.10.2011, 12:39     Поменять местами первую букву со второй, третью – с четвертой и т.д. #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
#include <iostream>
#include <iterator>
 
using namespace std;
 
int main()
{
    string v = "12345678";
 
    std::string::iterator it = v.begin();
    std::string::iterator it2;
 
    if( (v.size % 2)  != 0)
        return EXIT_FAILURE;
 
    for(; it != v.end(); )
    {
        it2 = it;
        advance(it2,1);
 
        iter_swap(it, it2);
        advance(it, 2);
    }
    cout << v;
 
    return 0;
}
xAtom
 Аватар для xAtom
910 / 735 / 60
Регистрация: 09.12.2010
Сообщений: 1,346
Записей в блоге: 1
20.10.2011, 12:41     Поменять местами первую букву со второй, третью – с четвертой и т.д. #3
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <stdio.h>
 
char* swap_n(char* str) {
    char  ch, *tmp = str;
    for(tmp = str; *tmp; *tmp++);
    if((tmp - str)%2) // если не чётное кол-во букв уходим отсюда
           return str;
    for(tmp = str; *str; str += 2) {
         ch = *str;
        *str = *(str + 1);
       *(str + 1) = ch;
    }
    return tmp;
}
 
int  main(void) {
  char str[] = "ABCDEF";
  puts( swap_n(str) );
  getchar();
  return 0;
}
zss
Модератор
Эксперт С++
 Аватар для zss
5942 / 5547 / 1783
Регистрация: 18.12.2011
Сообщений: 14,164
Завершенные тесты: 1
19.12.2011, 21:08     Поменять местами первую букву со второй, третью – с четвертой и т.д. #4
А в чем сложность:
C++
1
2
3
4
for(int i=0;i<strlen(s);i+=2)
{
char t=s[i];s[i]=s[i+1];s[i+1]=t;
}
Стасечка
1 / 1 / 0
Регистрация: 08.05.2011
Сообщений: 73
19.12.2011, 21:46  [ТС]     Поменять местами первую букву со второй, третью – с четвертой и т.д. #5
ну как то так так у меня получилось)выдает ошибку,не пойму...я совсем дуб.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
char* perem(char* s)
{
 
        char* s=new char;
 
       for(int i=0;i<strlen(s);i+=2)
          {
         char t=s[i];
         s[i]=s[i+1];
         s[i+1]=t;
          }
        return s;
 
}
int main(int argc, char* argv[])
{         char* s=new char;
         cout << "Vvedite stroku" << endl;
        cin >> s;
        cout << "Rezultat" <<perem(s)<< endl;
        getch();
 
        return 0;
}
Добавлено через 26 минут
Помогите,найти ошибку,пожалуйста.
zss
Модератор
Эксперт С++
 Аватар для zss
5942 / 5547 / 1783
Регистрация: 18.12.2011
Сообщений: 14,164
Завершенные тесты: 1
19.12.2011, 21:57     Поменять местами первую букву со второй, третью – с четвертой и т.д. #6
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
#include <stdio.h>
#include <string.h>
#include <conio.h>
void perem(char* s)
{
    for(int i=0;i<strlen(s);i+=2)
    {
        char t=s[i];
        s[i]=s[i+1];
        s[i+1]=t;
    }
    return;
}
int main(int argc, char* argv[])
{      
    char s[100];
    puts("Vvedite stroku:");
    gets(s);
    perem(s);
    puts("Rezultat");
    puts(s);
    getch();
    return 0;
}
sovaz1997
CEO SOVAZ Corp.
 Аватар для sovaz1997
379 / 225 / 2
Регистрация: 17.12.2011
Сообщений: 816
Записей в блоге: 1
19.12.2011, 22:00     Поменять местами первую букву со второй, третью – с четвертой и т.д. #7
Цитата Сообщение от zss2 Посмотреть сообщение
#include <stdio.h>
#include <string.h>
#include <conio.h>
void perem(char* s)
{
* * for(int i=0;i<strlen(s);i+=2)
* * {
* * * * char t=s[i];
* * * * s[i]=s[i+1];
* * * * s[i+1]=t;
* * }
* * return;
}
int main(int argc, char* argv[])
{ * * *
* * * * char s[100];
* * * * puts("Vvedite stroku:");
* * gets(s);
* * * * perem(s);
* * puts("Rezultat");
* * puts(s);
* * * * getch();
* * return 0;
}
Все верно!!!
Net_Wanderer
235 / 208 / 19
Регистрация: 08.06.2011
Сообщений: 467
19.12.2011, 22:00     Поменять местами первую букву со второй, третью – с четвертой и т.д. #8
zss2, а если в строке будет только один символ?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.12.2011, 22:21     Поменять местами первую букву со второй, третью – с четвертой и т.д.
Еще ссылки по теме:

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

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

Или воспользуйтесь поиском по форуму:
zss
Модератор
Эксперт С++
 Аватар для zss
5942 / 5547 / 1783
Регистрация: 18.12.2011
Сообщений: 14,164
Завершенные тесты: 1
19.12.2011, 22:21     Поменять местами первую букву со второй, третью – с четвертой и т.д. #9
Цитата Сообщение от Net_Wanderer Посмотреть сообщение
zss2, а если в строке будет только один символ?
Ну тогда можно написать
C++
1
for(int i=0;i<strlen(s)-1;i+=2)
И цикл выполнится ноль раз
Yandex
Объявления
19.12.2011, 22:21     Поменять местами первую букву со второй, третью – с четвертой и т.д.
Ответ Создать тему
Опции темы

Текущее время: 02:10. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru