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

Строки - C++

Восстановить пароль Регистрация
 
zizu
3 / 3 / 0
Регистрация: 23.12.2009
Сообщений: 94
23.06.2010, 22:09     Строки #1
1) Разработать алгоритм и программу для определения минимального количества первых символов, по которым можно различать слова из заданного текста.
2) Разработать алгоритм и программу для разбивки текста на строки длину не более 50 символов. Перенос слов на новую строку осуществлять на месте пропуска.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.06.2010, 22:09     Строки
Посмотрите здесь:

Добавить в конец первой строки, последние n2-n1 слов второй строки C++
C++ Скопировать второе слово каждой строки в начало следующей строки
c++ Даны две строки: S1 и S2. Определить количество вхождений строки S2 в строку S1. C++
C++ Найти номер строки матрицы, наиболее отдаленный от первой строки
C++ Поменять первый элемент строки с максимальным элементом этой строки
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
TrenAr
21 / 20 / 2
Регистрация: 21.06.2010
Сообщений: 80
23.06.2010, 23:07     Строки #2
1) Понятие "различать слова" слишком размазанно, не хватает конкретики. Там набор слов есть готовый или как определять то? Что является критерием?

2) Алгоритм прост: идём по тексту с шагом в 50 символов и на каждом шаге ищем ближайший пробел слева, после чего заменяем этот пробел символом новой строки.
zizu
3 / 3 / 0
Регистрация: 23.12.2009
Сообщений: 94
23.06.2010, 23:11  [ТС]     Строки #3
если б я знал как это еше сделать...
TrenAr
21 / 20 / 2
Регистрация: 21.06.2010
Сообщений: 80
23.06.2010, 23:55     Строки #4
2) На примере строки, разбитие по 5 символов; Код на С
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
#include <stdio.h>
 
#define VALUE 5
 
void printPart( char [], int, int );
 
int main()
{
    char st[] = "123456789012 3456789012345678 9012345678901234567890 1234567 890";
    int i = 0, j = 0, metka = 0;
    
    printf("Stroka = %s\n", st );
    
    while ( st[ i + metka ] != '\0' )
    {
          i++;
          if ( i == VALUE )
          {
               j = i + metka;
               while ( ( st[ j ] != ' ' ) && ( j > metka ) )
                     j--;
               if ( j > metka )
               {
                    printPart( st, metka, j );
                    metka = j + 1;
               }
               else
               {
                   printPart( st, metka, metka + VALUE - 1 );
                   metka += VALUE;
               }
               i = 0;
          }
    }
    printPart( st, metka, metka + i - 1 );
 
    return 0;
}
 
void printPart( char a[], int first, int last)
{
     int i;
     for ( i = first ; i <= last ; i++ )
         printf("%c", a[ i ] );
     printf("\n");
}
Yandex
Объявления
23.06.2010, 23:55     Строки
Ответ Создать тему
Опции темы

Текущее время: 17:49. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru