Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
1 / 1 / 0
Регистрация: 04.06.2015
Сообщений: 12
1

Добавление разделения строки по пробелам в код

04.06.2015, 21:43. Показов 531. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
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
70
71
72
#include "stdafx.h"
#include <iostream>
#include <clocale>
#include <string.h>
 
using namespace std;
 
char text[10000] = {}, q[50] = {};
int comlen = 0, f_str[100], l_str[100];
 
void StrOut(int first, int last){
        for (int i = first; i <= last; i++){
                cout << text[i];
        }
}
 
void main()
{       int num_str = 0,len=0;
// считываем
        for (char *p = text; strcmp(q,"%"); p = p + len, num_str++){  
                gets(q);                                               
                len = strlen(q);                                   
                f_str[num_str] = comlen;                               
                comlen += len ;                                        
                strcpy (p, q);                                         
        }
        cout<<endl;                                                    
// к нижнему регистру
        for (int i = 0; i < strlen(text); i++){
                text[i]=tolower(text[i]);
        }
// количество цифр
        for (int i=1; i< num_str;i+=2){
                if (i<num_str){
                        int num=0;
                        for (int j=f_str[i];j<f_str[i+1];j++){
                                if (isdigit(text[j])){
                                        num++;
                                }
                        }
                        cout<<"Number of number in "<<i<<" str is "<<num<<endl;
                }
        }
        cout<<endl;
// вывод текста
        int l_str=0;
        int l_pag=0;
        int cur_len_str=0;
        int cur_len_pag=1;
        cout<<"len str ";
        cin>>l_str;
        cout<<endl<<"len page ";
        cin>>l_pag;
        for (int i = 0; i < num_str-1; i++){
                cur_len_str=cur_len_str+f_str[i+1]-f_str[i]+1;
                if (cur_len_str>l_str){
                        cout<<endl;
                        cur_len_pag++;
                        cur_len_str=f_str[i+1]-f_str[i];
                }
                if (cur_len_pag>l_pag){
                        cout<<endl;
                        cur_len_pag=1;
                }
 
                StrOut(f_str[i], f_str[i + 1] - 1);
                cout<<" ";
        }
 
        cout<<endl;
        system("pause");
}
По заданию нужно, чтобы код форматировал введенный текст по введенным параметрам длины строки и кол-ва.
Например, если ввести:

aaa bbb ccc ddd
sssss
ddddd jjj
qq www eee rrrrr
aaaa sssss dddddd ffffff

И после указать длину строки 10, а кол-во строк 2, то вышеуказанный код выведет:

aaa bbb ccc ddd
sssss ddddd jjj

qq www eee rrrrr
aaaa sssss dddddd ffffff

Т.е. текст разделит он только по строкам, а нужно, чтобы он делил ещё и по словам, т.е. примерно так:

aaa bbb ccc
ddd sssss

ddddd jjj
qq www eee

rrrrr aaaa
sssss dddddd

ffffff

Что и где нужно исправить, чтобы разделяло по словам?

Добавлено через 2 часа 48 минут
Есть мнение, что для этого надо в цикл считывания вставить пробежку while по каждой строчке посимвольно, и если будет пробел, то начать новую строку. Ну и нужно как-то найти завершение строки, т.к. иначе цикл уйдёт в бесконечный повтор. Вот только как это всё записать я никак вкурить не могу

Добавлено через 2 часа 52 минуты
В общем, скорее всего, это решается добавлением такого цикла:
C++
1
2
    for(int i=0; i<strlen(text); i++)
        if (isspace(text[i])) text[i]='\n';
сразу после цикла считывания, но сейчас пока нет возможности проверить это.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
04.06.2015, 21:43
Ответы с готовыми решениями:

[Мой код] Функция для разделения строки по определенный символам
Мне недавно понадобилась акая функция для билдера, еле нашел рабочи код))). Создал из него...

Парсинг строки по пробелам
Делаю консоль. Написал парсер команд: string command = {&quot;&quot;}; int i = 0; while(i &lt; 5){ command =...

Разделение строки по нескольким пробелам
Здравствуйте! Есть строка вида &quot;Иванов Иван Иванович Иванова Мария Ивановна Иванова...

Из одной длинной строки сделать две (перенос по пробелам)
String str = &quot;это длинная строка, которую нужно разделить&quot;; if (str.Length &lt;= 13)...

2
7795 / 6561 / 2985
Регистрация: 14.04.2014
Сообщений: 28,683
04.06.2015, 21:47 2
Такое разделение будет намного сложнее, чем эти две строки.
0
1 / 1 / 0
Регистрация: 04.06.2015
Сообщений: 12
05.06.2015, 12:27  [ТС] 3
Проверил, не работает как надо. Всё ещё нужна помощь.
0
05.06.2015, 12:27
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
05.06.2015, 12:27
Помогаю со студенческими работами здесь

Функция разделения строки в массив отдельных частей этой строки
Помогите написать функцию, которая на вход принимает строку типа String и возвращает уже массив...

Как записать SQL код на добавление строки?
Как записать SQL код на добавление строки? Мне надо на добавление несколько строк. Как записать?

фукция разделения строки
Скажите, пожалуйста, если один из ответов Null, как прописать так, что бы textBox.Text = &quot;&quot;; ...

скрипт для разделения текстовой строки
Есть Форма в которую вводят сообщение, есть скрипт написанный на PHP который отображает это...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru