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

Вывести строки файла, после строки добавляя, сколько раз в ней встретилось слово - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 12, средняя оценка - 4.58
makasin773
0 / 0 / 0
Регистрация: 21.12.2011
Сообщений: 27
02.02.2012, 21:56     Вывести строки файла, после строки добавляя, сколько раз в ней встретилось слово #1
Напишите программу, которая считывает текст из файла и выводит на экран все строки файла, после каждой строки добавляя, сколько раз в ней встретилось слово, введенное с клавиатуры. Необходимо предусмотреть случай, если файла не существует.Работа в Turbo C обязательна.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.02.2012, 21:56     Вывести строки файла, после строки добавляя, сколько раз в ней встретилось слово
Посмотрите здесь:

C++ написать программу, которая считывает текст из файла, находит самое длинное слово и определяет сколько раз оно встретилось в тексте
В тексте из файла найти самое длинное слово и определить, сколько раз оно встретилось C++
Написать программу, которая считывает текст из файла, добавляет после каждого предложения сколько раз в нем встретилось введенное слово C++
Строки. Определить , сколько раз встречается в ней самое длинное слово C++
C++ Определить, сколько раз введенное с клавиатуры слово встретилось в файле
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Rexer
 Аватар для Rexer
151 / 150 / 19
Регистрация: 10.10.2010
Сообщений: 691
03.02.2012, 16:28     Вывести строки файла, после строки добавляя, сколько раз в ней встретилось слово #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
/*
 Напишите программу, которая считывает текст из файла и выводит на экран все строки файла,
 после каждой строки добавляя, сколько раз в ней встретилось слово,
 введенное с клавиатуры. Необходимо предусмотреть случай, если файла не существует.
 Работа в Turbo C обязательна.
 */
#include<stdio.h>
#include<string.h>
int main()
{
    char str[100];
    char word[100];
    int count = 0;
    char *pa;
    FILE* pf = fopen("file.txt","r");
    if(pf == NULL)
        perror("Error");
    else
    {
        printf("Enter the word : ");
        scanf("%s", &word);
        while(fgets(str, 100, pf) != NULL)
        {
            puts(str);
            pa = strtok(str," ,.-");
            if(!strcmp(pa,word))
                count++;
            while(pa != NULL)
            {
                pa = strtok(NULL," ,.-");
                if(pa != NULL)
                if(!strcmp(pa,word))
                    count++;
            }
            printf("%d\n",count);
            count = 0;
        }
    }
    fclose(pf);
}
-=ЮрА=-
Заблокирован
Автор FAQ
03.02.2012, 17:46     Вывести строки файла, после строки добавляя, сколько раз в ней встретилось слово #3
Цитата Сообщение от makasin773 Посмотреть сообщение
Напишите программу, которая считывает текст из файла и выводит на экран все строки файла, после каждой строки добавляя, сколько раз в ней встретилось слово, введенное с клавиатуры. Необходимо предусмотреть случай, если файла не существует.Работа в Turbo C обязательна.
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
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
 
int getSearchWord(char * text, char * word)
{
    int nCount = 0;
    char * str = strstr(text,word);
    while(str)
    {
        nCount = nCount + 1;
        str    = strstr(str + 1,word);
    }
    return nCount;
}
 
int main()
{
    long sLen   = 0;//Áóäåò ñîäåðæГ*ГІГј Гў Г±ГҐГЎГҐ äëèГ*Г*Гі ГІГҐГЄГ±ГІГ* Гў ГґГ*éëå
    char * text = NULL;//ÓêГ*Г§Г*òåëü Г*Г* ГІГҐГЄГ±ГІ Гў ГґГ*éëå
    char * line = NULL;//ÓêГ*Г§Г*òåëü Г*Г* ñëåä ñòðîêó
    char word[32] = {0};//Ââîäèìîå Г± ГЄГ«Г*ГўГЁГ*òóðû ñëîâî
    long lPos   = 0;//Ïîçèöèÿ Г*Г* ñëåä ñòðîêó
    FILE *f = fopen("text.txt","rb");
    if(!f)
        printf("Error open text.txt\n");
    else
    {
        printf("Enter word to search : \n");
        scanf("%[^\n]",word);
        getchar();
        fseek(f,0,SEEK_END);
        sLen = ftell(f);
        fseek(f,0,SEEK_SET);
        if(!(text = (char *)malloc((1 + sLen)*sizeof(char))))
            printf("Allocation memory error\n");
        else
        {
            if(!fread(text,1,sLen,f))
                printf("File read error\n");
            else
                text[sLen] = '\0';
        }
        fclose(f);
        if(text)//ÑþäГ* ïîïГ*ä¸ì åñëè âûäåëåГ*ГЁГҐ ГЁ Г·ГІГҐГ*ГЁГҐ ïðîøëè ГіГ±ГЇГҐГёГ*Г®
        {
            line = strrchr(text,'\n');//Èùåì Г±Г*ìóþ ïîñëåäГ*ГѕГѕ ñòðîêó
            while(line)
            {
                lPos = strlen(text) - strlen(line) - 1;
                printf("%s [%02d]\n",line + 1,getSearchWord(line, word));
                text[lPos] = '\0';//ÓäГ*ëÿåì ñòðîêó ГЁГ§ ГІГҐГЄГ±ГІГ*
                line = strrchr(text,'\n');
            }
            //Г‚ ГІГҐГЄГ±ГІГҐ îñòГ*Г«Г*Г±Гј îäГ*Г* ïîñëåäГ*Гї ñòðîêГ*
            printf("%s [%02d]\n",text,getSearchWord(text, word));
            free((void *)text);
        }
    }
    printf("Press any key to continue\n");
    getchar();
    return 0;
}
text.txt
C++ (pronounced "cee plus plus") is a statically typed,
free-form, multi-paradigm, compiled, general-purpose
programming language. It is regarded as an intermediate-level
language, as it comprises a combination of both high-level
and low-level language features.[2] It was developed by Bjarne
Stroustrup starting in 1979 at Bell Labs as an enhancement to
the C language. Originally named C with Classes,
the language was renamed C++ in 1983.[3]
C++ is one of the most popular programming languages[4][5]
with application domains including systems software,
application software,
device drivers, embedded software, high-performance
server and client applications, and entertainment
software such as video games.[6] Several groups provide
both free and proprietary C++ compiler software,
including the GNU Project, Microsoft,
Intel and Embarcadero Technologies. C++ has
greatly influenced many other popular programming languages,
most notably C# and Java.
C++ is also used for hardware design,
where the design is initially
described in C++, then analyzed, architecturally constrained, and
scheduled to create a register-transfer level hardware description
language via high-level synthesis.[7]
The language began as enhancements to C, first adding classes,
then virtual functions, operator overloading,
multiple inheritance,
templates, and exception handling among other features.
After years of development,
the C++ programming language standard was ratified in
1998 as ISO/IEC 14882:1998.
The standard was amended by the 2003 technical corrigendum,
ISO/IEC 14882:2003. The current standard extending C++ with new
features was ratified and published by ISO in September
2011 as ISO/IEC 14882:2011 (informally known as C++11).
Миниатюры
Вывести строки файла, после строки добавляя, сколько раз в ней встретилось слово  
rangerx
1908 / 1517 / 139
Регистрация: 31.05.2009
Сообщений: 2,876
04.02.2012, 00:07     Вывести строки файла, после строки добавляя, сколько раз в ней встретилось слово #4
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
#include <stdio.h>
#include <string.h>
 
#define DELIM " ,.:;?!"
 
//----------------------
 
int main(void)
{
    int n;
    char* p;
    FILE* in_file;
    char line[256], word[256], filename[256];
 
    printf("file: ");
    scanf("%s", filename);
 
    if((in_file = fopen(filename, "r")) == NULL)
    {
        printf("error: can`t open file \"%s\"\n", filename);
        return 1;
    }
 
    printf("word: ");
    scanf("%s", word);
 
    while(fgets(line, sizeof(line), in_file))
    {
        if((p = strchr(line, '\n'))) *p = '\0';
        printf("%s", line);
 
        n = 0;
        for(p = strtok(line, DELIM); p != NULL; p = strtok(NULL, DELIM))
            if(strcmp(p, word) == 0) ++n;
 
        printf(" - %d\n", n);
    }
 
    fclose(in_file);
 
    return 0;
}
Yandex
Объявления
04.02.2012, 00:07     Вывести строки файла, после строки добавляя, сколько раз в ней встретилось слово
Ответ Создать тему
Опции темы

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