1 / 1 / 0
Регистрация: 09.09.2011
Сообщений: 45
|
|
1 | |
Разбивка на лексемы и состовление из лексем строк28.04.2012, 12:15. Показов 3009. Ответов 9
Метки нет (Все метки)
Мне уже пользователи форума уже помогли. Ну есть еще маленькая проблема. Стоит задача считать текстовый файл с учетом пробелов между словами. Потом записать этот фрагмент в файл который состоит из 7 строк и содержит в каждой строке по 40 символов.
Вот к примеру исходный файл: Си (англ. C) — стандартизированный процедурный язык программирования. Си был создан для использования в операционной системе UNIX. С тех пор он был портирован на многие ОС. Код
#include <iostream> #include <fstream> #include <clocale> using namespace std; const int size1 = 7; const int size2 = 40; int main () { setlocale (LC_ALL, "Russian"); ifstream in ("file.txt"); char A [size1][size2] = {{0}}; char token [size1][size2] = {{0}}; for (int y = 0; y < size1; y++) for (int i = 0; i < size2; i++) in.get(A [y][i]); for (int y = 0; y < size1; y++) { for (int i=0; A[y][i] = '\n' && i<size2; i++) { token [y][i] = A [y][i]; cout << token [y][i]; cout << endl; } } in.close(); system("pause"); return 0; } Си (англ. C) — стандартизированн ый процедурный язык программиров ания. Си был создан для использо вания в операционной системе UNI X. С тех пор он был портирован н а многие ОС. Как можно сделать так чтобы если слово не помещаться в строчку, то оно переноситься на следующею. То есть чтобы слово стандартизированный не было разорвано и не встречались переносы в тексте. Добавлено через 2 часа 39 минут Что у ни кого нету ни каких соображений по этому поводу? Добавлено через 17 часов 28 минут На лексемы вроде разбил. Теперь осталось эти лексемы записать в строки длинной 50. С условием что если слово не помещаться в данную строчку то перенести его целиком на следующею. Переносы и разрывы слов не допускаются. Помогите пожалуйста, заранее спасибо. Код
#include <iostream> #include <fstream> #include <clocale> using namespace std; const int size2 = 1000; int main () { setlocale (LC_ALL, "Russian"); ifstream in ("file.txt"); char str [size2] = {0}; char token [size2]= {0}; int i,j; for (int r = 0; r < size2; r++) in.get(str [r]); for (int r=0; r<size2; r++) cout << str [r]; cout << endl; for (i=0;;i++){ for (j=0; str[i]!=' ' && str[i]; j++, i++) token [j] = str [i]; token [j] = ' \0'; cout << token << endl; if (!str[i]) break; } in.close(); system("pause"); return 0; }
0
|
28.04.2012, 12:15 | |
Ответы с готовыми решениями:
9
Разбивка строки на лексемы Сохранение всех входящих лексем(строк) в порядке поступления Разделение строки на лексемы с strtok, проверка длины каждой лексемы (выдает ошибку) Разбить строку на лексемы и вывести лексемы в обратном порядке. |
ниначмуроФ
851 / 535 / 110
Регистрация: 12.10.2009
Сообщений: 1,913
|
||||||
28.04.2012, 14:11 | 2 | |||||
главное чтобы в тексте не было слов длинной > MAXLENGTH
1
|
В астрале
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
|
||||||
28.04.2012, 14:40 | 3 | |||||
PointsEqual, С size_global_buf работа не корректна.
2
|
ниначмуроФ
851 / 535 / 110
Регистрация: 12.10.2009
Сообщений: 1,913
|
|
28.04.2012, 15:03 | 4 |
Corvette, в строках 25 и 32 замени size_global_buf на global_buf.size()
ForEveR, спасибо. Сначала проверил, запостил, - увидел что так и просится заменить, заменил и не проверил)
1
|
|
28.04.2012, 15:42
#5
|
Не по теме: PointsEqual,
1
|
ForEveR
|
28.04.2012, 15:46
#6
|
Не по теме: -=ЮрА=-, Юра, форум С++. Используют здесь С++. Коды написаны на С++. А уж какие средства они используют - дело десятое. Я предпочитаю высокоуровневый код, проверенные, уже написанные алгоритмы и т.д.
2
|
Заблокирован
|
||||||
28.04.2012, 15:53 | 7 | |||||
Corvette, попробуй так
1
|
1 / 1 / 0
Регистрация: 09.09.2011
Сообщений: 45
|
|
28.04.2012, 15:54 [ТС] | 9 |
Спасибо огромное всем. Все работает. Вы меня очень выручили.
PS: Я вообще то не программист и работаю в другой сфере. Но по работе пытаюсь все максимально автоматизировать и программирование это мое хобби. Поэтому и учу языки.
0
|
|
28.04.2012, 15:56
Разбивка на лексемы и состовление из лексем строк
#10
|
1
|
28.04.2012, 15:56 | |
28.04.2012, 15:56 | |
Помогаю со студенческими работами здесь
10
Есть ли в классе строк или в алгоритмах разбиение строку на лексемы? Парсинг строк, разбиение строки на лексемы, регулярные выражения, разделители Разбивка строк Разбивка строк на слова Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |