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

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

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

Перенос буквы слова в конец.Кто-нибудь осилит? - C++

25.05.2012, 21:41. Просмотров 487. Ответов 2
Метки нет (Все метки)

В произвольном тексте (взятом из файла), содержащем не более 10 строк, в каждой строке не более 80 смволов, перенести первую букву каждого слова в его конец. Отсортировать строки в порядке убывания количества слов. Вывести полученный текст на экран. Выведенную информацию продублировать в текстовый файл, имя которого задаёт пользователь
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.05.2012, 21:41
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Перенос буквы слова в конец.Кто-нибудь осилит? (C++):

Перенос буквы в конец слова - C++
В произвольном тексте (взятом из файла), содержащем не более 10 строк, в каждой строке не более 80 смволов, перенести первую букву каждого...

Переставить все входящие буквы «а» в начало слова, а буквы «я» – в конец - C++
Привет! Нужно во всех словах строки S переставить все входящие буквы «а» в начало слова, а буквы «я» – в конец. Что-то не как не пойму...

Файловый ввод/вывод. Во всех словах строки переставить все входящие буквы «а» в начало слова, а буквы «я» – в конец - C++
Здравствуйте! Помогите, пожалуйста, составить программу, которая считывает из текстового файла input.txt строку символов S.Во всех словах...

Перенос первого слова в конец строки. - C++
Создать приложение, которое считывает строку текста и переносит первое сло*во в конец строки. Результат вывести на экран.

Перенос первых букв в конец слова - C++
прошу помочь с задачей "Дано слово. перенести первые k его букв в конец"

Перенести первые буквы слова в конец - C++
Задача: Дано слово, перенести первые k его букв в конец.(использовать оператор цикла) Вот что-то написал, но работает не правильно в...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
zitxbit
Master C/C++
88 / 740 / 75
Регистрация: 11.04.2012
Сообщений: 971
26.05.2012, 14:02 #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
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
62
63
64
65
66
67
68
69
#include <stdio.h>
#include <ctype.h>
#include <string.h>
 
#include <iostream>
#include <fstream>
 
#define N 10
 
typedef struct Lines
{
    char line[80];
    int count;
} LINE;
 
void swap(LINE& line1, LINE& line2);
 
using namespace std;
 
int main()
{
    const char* filename = "d:\\input.txt";
    ifstream ifs(filename, ifstream::in);
 
    static char* line = new char[80];
    LINE* pText = new LINE[N]; int i = 0;
    memset((void*)pText, 0x00, sizeof(LINE) * N);   
    while ((ifs.peek() >= 0) && (ifs.getline(line, 80)))
    {
        pText[i].count = 0;
        strcpy(pText[i++].line, line);
    }
 
    for (int s = 0; strcmp("\0",pText[s].line) < 0; s++)
    {
        int cnt = 0; char* psz = pText[s].line;
        for (int i = 0; psz[i] != '\0'; i++)
            if (isspace(psz[i]) || i == strlen(psz)-1)
            {
                int k = i-1; int q = strlen(psz)-1;
                while (q >= i) psz[q+1] = psz[q--];
                while ((!isspace(psz[k])) && (k >= 0)) k--;
 
                char ch = psz[k+1]; cnt++;
                for (int n = k+1; psz[n] != '\0'; n++)
                    psz[n] = psz[n+1]; 
                
                psz[i == strlen(psz)-1 ? i : i-1] = ch;
            }
 
            pText[s].count = cnt;
    }
 
    for (int i = 0; strcmp("\0",pText[i].line) < 0; i++)
    {
        int max_i = i;
        for (int k = i+1; strcmp("\0",pText[k].line) < 0; k++)
            if (pText[k].count > pText[max_i].count) max_i = k;
        swap(pText[i],pText[max_i]);
    }
 
    for (int i = 0; strcmp("\0",pText[i].line) < 0; i++)
        printf("%s %d\n",pText[i].line,pText[i].count);
 
    return 0;
}
 
void swap(LINE& line1, LINE& line2)
 { LINE _tl = line1; line1 = line2; line2 = _tl; }
http://liveworkspace.org/code/c2681e...b3eb5c8a6dff17
Larkin888
0 / 0 / 0
Регистрация: 17.05.2012
Сообщений: 42
03.06.2012, 19:52  [ТС] #3
Цитата Сообщение от zitxbit Посмотреть сообщение
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
62
63
64
65
66
67
68
69
#include <stdio.h>
#include <ctype.h>
#include <string.h>
 
#include <iostream>
#include <fstream>
 
#define N 10
 
typedef struct Lines
{
    char line[80];
    int count;
} LINE;
 
void swap(LINE& line1, LINE& line2);
 
using namespace std;
 
int main()
{
    const char* filename = "d:\\input.txt";
    ifstream ifs(filename, ifstream::in);
 
    static char* line = new char[80];
    LINE* pText = new LINE[N]; int i = 0;
    memset((void*)pText, 0x00, sizeof(LINE) * N);   
    while ((ifs.peek() >= 0) && (ifs.getline(line, 80)))
    {
        pText[i].count = 0;
        strcpy(pText[i++].line, line);
    }
 
    for (int s = 0; strcmp("\0",pText[s].line) < 0; s++)
    {
        int cnt = 0; char* psz = pText[s].line;
        for (int i = 0; psz[i] != '\0'; i++)
            if (isspace(psz[i]) || i == strlen(psz)-1)
            {
                int k = i-1; int q = strlen(psz)-1;
                while (q >= i) psz[q+1] = psz[q--];
                while ((!isspace(psz[k])) && (k >= 0)) k--;
 
                char ch = psz[k+1]; cnt++;
                for (int n = k+1; psz[n] != '\0'; n++)
                    psz[n] = psz[n+1]; 
                
                psz[i == strlen(psz)-1 ? i : i-1] = ch;
            }
 
            pText[s].count = cnt;
    }
 
    for (int i = 0; strcmp("\0",pText[i].line) < 0; i++)
    {
        int max_i = i;
        for (int k = i+1; strcmp("\0",pText[k].line) < 0; k++)
            if (pText[k].count > pText[max_i].count) max_i = k;
        swap(pText[i],pText[max_i]);
    }
 
    for (int i = 0; strcmp("\0",pText[i].line) < 0; i++)
        printf("%s %d\n",pText[i].line,pText[i].count);
 
    return 0;
}
 
void swap(LINE& line1, LINE& line2)
 { LINE _tl = line1; line1 = line2; line2 = _tl; }
http://liveworkspace.org/code/c2681e...b3eb5c8a6dff17

"Test.exe": Загружено: "C:\WINDA\system32\ntdll.dll", Невозможно найти или открыть файл PDB
"Test.exe": Загружено: "C:\WINDA\system32\kernel32.dll", Невозможно найти или открыть файл PDB
"Test.exe": Загружено: "D:\Program Files\Avast\snxhk.dll", Невозможно найти или открыть файл PDB
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.06.2012, 19:52
Привет! Вот еще темы с ответами:

Кто нибудь, когда нибудь встречал Шрёдинбаг? - C++
Шрёдинбаг (англ. Schroedinbug) — термин, используемый в программировании для описания программной ошибки, которая никак не проявляет себя,...

Напечатать все слова, отличные от последнего слова строки, удалив из каждого слова первую и последнюю буквы - C++
Близиться сессия,а завтра мне сдавать 2 проги. Помогите ребят,могу даже 100 скинуть,если уж так трудно помочь. 8.Задан...

Переместить первую букву слова в конец слова(Строки) - C++
Здравствуйте уважаемые форумчане. Помогите пожалуйста. Напечатать все слова, заранее перенести первую букву слова в конец слова. Нужно...

проверьте кто-нибудь - C++
я давно как-то создавал тему дек через массив.там в конце я написал что вроде прога рабоатет. через несколько дней я запустил её - вроде...


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

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

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