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

Выделение слов, содержащих определённый символ, считаных из файла. - C++

Восстановить пароль Регистрация
 
KiriuS
0 / 0 / 0
Регистрация: 12.04.2012
Сообщений: 4
12.04.2012, 16:55     Выделение слов, содержащих определённый символ, считаных из файла. #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
57
58
59
60
61
62
63
64
65
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main()
{
    char bigWord[256], buf[256];
    char str[30];
    size_t bigWordLength=0, bufLength;
    FILE *f;
    bigWord[0] = '\0';
    int i, j, k=0;
//////////////////Считывание и вывод на консоль/////////////////////////////////
    char t;
if((f=fopen("test.txt","r"))!=NULL)
while(!feof(f))
   {
       t=fscanf( f, "%s", &str);
       if (t==EOF)
       break;
       printf("%s ",str);
     
   }
printf("\n\n\n"); 
fclose(f);
////Поиск самого длинного слова и символа, с которого оно начинается////////////
if((f=fopen("test.txt","r"))!=NULL)
    {
        while(fscanf(f, "%255s", buf) != EOF)
        {
            bufLength = strlen(buf);
            if(bufLength > bigWordLength)
            {
                strcpy(bigWord, buf);
                bigWordLength = bufLength;
            }
        }
        if(bigWordLength == 0)
        {
            printf("File is empty");
        }
        else
        {
            printf("Big word: \"%s\" (Length: %u)\n", bigWord, bigWordLength);
            printf("First symbol %c \n", bigWord[0]);
        }
        fclose(f);
    }
    else
    {
        printf("Cannot open file");
    }
    
    system("pause");
///////////Выделение слов, в которых есть искомый символ////////////////////////    
     if ((f=fopen("test.txt", "rt"))!=NULL)  
     while(!feof(f)) 
     {
     fscanf( f, "%s", &str);
     for(i=0; str[i]!='\0'; i++)
     if (bigWord[0]==str[i]) printf("<<%s>> ",str);
      else printf("%s ", str);
     }
    fclose(f);
    getchar();
}
PS: Текстовый файл с которым я работал прилагается.
PSS: Работал с компилятором Dev C++... Ибо другого в универе у нас нет, платить не хотят
Вложения
Тип файла: txt test.txt (209 байт, 7 просмотров)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.04.2012, 16:55     Выделение слов, содержащих определённый символ, считаных из файла.
Посмотрите здесь:

C++ Удаление слов содержащих латинские буквы...
Считать последний символ файла. Записать символ в конец файла C++
Дан текст, найти количество слов и количество слов, у которых первый и последний символ совпадают C++
C++ Подсчитать количество слов содержащих букву а.
Поиск слов, содержащих указанный фрагмент C++
C++ Определить количество слов в строке, содержащих заданный символ
Сформировать из считаных из файла чисел матрицу, содержащую 4 столбца C++
Подсчитать количество слов, содержащих введенный символ C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

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