Форум программистов, компьютерный форум, киберфорум
C для начинающих
Войти
Регистрация
Восстановить пароль
 
0 / 0 / 0
Регистрация: 18.11.2019
Сообщений: 24
1

Поменять местами в предложении соседние слова

23.11.2019, 16:55. Просмотров 356. Ответов 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
#include <stdio.h>
 
int main(){
    char str[1024], first[100], second[100];
    int i = 0, spaces = 0;
    int k = 0;
    printf("Vvedite stroky: ");
    gets(str);
    
    // кол-во слов в строке
    do{
        if(str[i] == ' ') spaces++;
    } while(str[i++] != '\0');
    printf("Vvedenno %d slov\n", spaces + 1);
    if(!(spaces % 2)){
        printf("Nechetnoe kol-vo slov. Nyzhno ybrat poslednee slovo.\n");
        do{
            str[i--] = '\0';
        } while(str[i] != ' ');
        printf("new string: ");
        puts(str);
    }
    
    printf("Perestanovka slov\n");
    i = 0;
    while(spaces){
        while(str[i] != ' '){
            first[k++] = str[i++];
        }
        first[k] = '\0';
        k = 0;
        i++;
        
        while(str[i] != ' '){
            second[k++] = str[i++];
        }
        second[k] = '\0';
        k = 0;
        i++;
        
        printf("%s ", second);
        printf("%s ", first);
        spaces--;
    }
    
    return 0;
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
23.11.2019, 16:55
Ответы с готовыми решениями:

Поменять местами в предложении соседние слова
В общем то я тупА в тильте .Задание звучит следующим образом : Поменять местами в предложении...

Поменять соседние слова местами
задание: Дано предложение. Вывести его на экран, меняя местами каждые два соседних слова. Никак...

Поменять местами соседние слова в тексте
Написать программу, которая считывает текст из файла и выводит его в другой файл и на экран, меняя...

Поменять соседние слова в строке местами
Доброе всем время суток. Есть такая задачка. Вроде несложная, но написать что-то не получается....

4
Модератор
Эксперт С++
9778 / 8344 / 5085
Регистрация: 18.12.2011
Сообщений: 22,310
23.11.2019, 17:01 2
Лучше сделать так:
Помогите плиз с алгоритмом проги (переставить слова в строке)
Или разбить на слова через strinstream.
0
0 / 0 / 0
Регистрация: 18.11.2019
Сообщений: 24
23.11.2019, 17:36  [ТС] 3
Задание следующее : Поменять местами в предложении слова: первое со вторым, третье с четвертым, и тому подобное.
Если слов нечетное количество, то сначала последнее слово из предложения удалить. Последнее слово из предложения я удалил ,но вот с перестановкой траблы . Не получается поменять их местами (появляются какие то непонятные символы).Помогите ,кто может и желательно с обьяснением,буду благодарен . Вот мой код:
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
#include <stdio.h>
 
int main(){
    char str[1024], first[100], second[100];
    int i = 0, spaces = 0;
    int k = 0;
    printf("Vvedite stroky: ");
    gets(str);
    
    // кол-во слов в строке
    do{
        if(str[i] == ' ') spaces++;
    } while(str[i++] != '\0');
    printf("Vvedenno %d slov\n", spaces + 1);
    if(!(spaces % 2)){
        printf("Nechetnoe kol-vo slov. Nyzhno ybrat poslednee slovo.\n");
        do{
            str[i--] = '\0';
        } while(str[i] != ' ');
        printf("new string: ");
        puts(str);
    }
    printf("sp %d",spaces);
    printf("Perestanovka slov\n");
    i = 0;
    
    while(spaces){
        while(str[i] != ' '){
            first[k++] = str[i++];
        }
        first[k] = '\0';
        k = 0;
        i++;
        
        while(str[i] != ' '){
            second[k++] = str[i++];
        }
        second[k] = '\0';
        k = 0;
        i++;
        
        printf("%s ", second);
        printf("%s ", first);
        spaces--;
    }
    
    return 0;
}
0
0 / 0 / 0
Регистрация: 18.11.2019
Сообщений: 24
23.11.2019, 17:53  [ТС] 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
#include <stdio.h>
 
int main(){
    char str[1024], first[100], second[100];
    int i = 0, spaces = 0;
    int k = 0;
    printf("Vvedite stroky: ");
    gets(str);
    
    // кол-во слов в строке
    do{
        if(str[i] == ' ') spaces++;
    } while(str[i++] != '\0');
    printf("Vvedenno %d slov\n", spaces + 1);
    if(!(spaces % 2)){
        printf("Nechetnoe kol-vo slov. Nyzhno ybrat poslednee slovo.\n");
        do{
            str[i--] = '\0';
        } while(str[i] != ' ');
        printf("new string: ");
        puts(str);
    }
    
    printf("Perestanovka slov\n");
    i = 0;
    while(spaces){
        while(str[i] != ' '){
            first[k++] = str[i++];
        }
        first[k] = '\0';
        k = 0;
        i++;
        
        while(str[i] != ' '){
            second[k++] = str[i++];
        }
        second[k] = '\0';
        k = 0;
        i++;
        
        printf("%s ", second);
        printf("%s ", first);
        spaces--;
    }
    
    return 0;
}
0
zss
23.11.2019, 18:12     Поменять местами в предложении соседние слова
  #5
 Комментарий модератора 
Eugeneee, чем Ваши 2 новых темы отличаются?
Имейте ввиду
П.5.5. Правил
Запрещено размещать тему в нескольких подразделах одного раздела одновременно (кросспостинг), а также дублировать тему в одном разделе.
0
23.11.2019, 18:12
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.11.2019, 18:12
Привет! Вот еще темы с ответами:

Поменять местами каждые соседние слова
Написать программу, которая считывает текст с клавиатуры и выводит его на экран, меняет местами...

Поменять в строке местами соседние слова (fstream)
Имеется строка, нужно поменять местами слова: 1-ое со 2-ым, 3-е с 4-ым и т.д помогите придумать...

Прочитать текстовый файл и поменять в каждой строке местами соседние слова
Привет,помогите пожалуйста,нужно составить программу, которая читает текстовый файл и меняет в ...

Поменять местами слова в предложении
Такая проблема. Нужно сделать программу, в которую вводим предложение размером N, и которая меняет...


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

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

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