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

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

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

В каждой строке текстового файла поменять местами первое и последнее слова - C++

24.12.2013, 00:04. Просмотров 487. Ответов 1
Метки нет (Все метки)

В каждой строке текстового файла поменять местами первое и последнее слова.

Очень нужна ваша помощь!!!
Вот есть пример того, что написала я, но он не правильно работает(((

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
51
52
53
54
55
56
#include "stdafx.h"
#include <iostream>
#include <string>
#include "locale.h"
#include "conio.h"
#include "stdlib.h"
#include "stdio.h"
#include <ctype.h>
using namespace std;
 
int main()
{
    setlocale(LC_ALL,"Russian");
    FILE *file;
        char name[256];
        char str[256];
    char *str1[50];
    char *str2[50];
        const char *leks = " ";
    int j,i;
        if((file = fopen("text.txt", "r+"))==NULL) 
    {
         printf ("Ошибка при открытии файла!");
             exit (1);
        }
    
         printf("\tИсходный текст:\n\n");
         while(fgets(str, 12, file) != NULL)
         {
             printf("%s", str);
     }
         fseek(file, 0, SEEK_SET);
        printf("\n");
    printf ("\n\tПреобразованный текст: \n\n");
        while(fgets(str, 12, file) != NULL) // sizeof(str)
        {
         j = 0;
        str1[j] = strtok(str, leks);
         while(str1[j] != NULL)
       {
        j++;
        str1[j] = strtok(NULL, leks); 
        }
        for(int i = 0; i < j; i++)
        {
        swap(str1[0], str1[j-1]);
        }
 
       for(int i = 0; i < j; i++)
        printf ("%s ", str1[i]);
         }
 
    fclose (file);
    getch ();
    return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.12.2013, 00:04
Здравствуйте! Я подобрал для вас темы с ответами на вопрос В каждой строке текстового файла поменять местами первое и последнее слова (C++):

Поменять местами первое и последнее слова в строке - C++
Поменять местами в строке первое и последнее слова . Считать , что слова отделены друг от друга пробелом

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

В строках поменять местами первое и последнее слова - C++
Ребята, помогите пожалуйста с задачами... язык С++ 1.Ввести 2 строки. В результате выполнения программы в обоих строках поменять местами...

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

Поменять местами первое и последнее слово в строке - C++
задача: поменять местами первое и последнее слово в строке. проблема некорректно определяется конец первого слова. код: /*В...

Поменять местами первое и последнее слово в строке - C++
Мне нужна помощь. Помогите сделать это задание Создать файл, в который записываются исходные данные. Поменять местами первое и последнее...

1
Людвиг Бодмер
350 / 349 / 135
Регистрация: 29.03.2013
Сообщений: 860
Завершенные тесты: 4
24.12.2013, 17:11 #2
lyna, вот поправил ваш код:
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
51
52
53
54
55
56
57
58
59
60
61
#include "stdafx.h"
#include <iostream>
#include <string>
#include "locale.h"
#include "conio.h"
#include "stdlib.h"
#include "stdio.h"
#include <ctype.h>
using namespace std;
 
int main()
{
    setlocale(LC_ALL,"Russian");
    FILE *file;
    char name[256];
    char str[256];
    char *str1[50];
    char *str2[50];
        const char *leks = " ";
    int j,i;
        if((file = fopen("text.txt", "r+"))==NULL) 
    {
         printf ("Ошибка при открытии файла!");
             exit (1);
        }
    
         printf("\tИсходный текст:\n\n");
         while(fgets(str, 256, file) != NULL)
         {
             printf("%s", str);
     }
         fseek(file, 0, SEEK_SET);
        printf("\n");
    printf ("\n\tПреобразованный текст: \n\n");
        while(fgets(str, 256, file) != NULL) // sizeof(str)
        {
         j = 0;
        str1[j] = strtok(str, leks);
         while(str1[j] != NULL)
       {
        j++;
        str1[j] = strtok(NULL, leks); 
        }
    
        swap(str1[0], str1[j-1]);
        char *p = str1[0];
        while (p = strchr(p, '\n'))
        {
            *p++ = ' ';
        }
        
 
       for(int i = 0; i < j; i++)
        printf ("%s ", str1[i]);
       printf ("\n");
         }
 
    fclose (file);
    getch ();
    return 0;
}
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.12.2013, 17:11
Привет! Вот еще темы с ответами:

Поменять местами первое и последнее слово, найти слова-палиндромы - C++
Объектно-ориентированное программирование. Разработать программу. В заданном тексте (слова разделяются пробелами) по требованию...

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

поменять местами первое и второе слово в каждой строке - C++
ввести массив из 5 строк с клавиатуры,поменять местами первое и второе слово в каждой строке. помогите решить плиз

Удалить в каждой строке текстового файла последнее слово - C++
Выполнить обработку текстового файла. Определить кол-во предложений в исходном тексте.как реализовать ?Удалить в каждой строке последнее...


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

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

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