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

небольшая ошибочка - C++

Восстановить пароль Регистрация
 
andyoO
1 / 1 / 0
Регистрация: 19.12.2012
Сообщений: 68
10.01.2013, 19:06     небольшая ошибочка #1
Задан текст. Задано множество из n символов. Подсчитать количество вхождений в тексте каждого из символов массива.
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
#include "stdafx.h"
#include <iostream>
#include <iomanip>
#include <fstream>
#include <cstring>
#include <conio.h>
char * findchar(char * str, char ch){
    for(;*str;++str)
        if (*str==ch) return str;
    return NULL;
}
 
 
int main(){
    std::ifstream file("input.txt",std::ios_base::binary);
    file.seekg(0,std::ios::end);
    int txtlen=file.tellg();
    file.seekg(0,std::ios::beg);
    char * txt=new char[txtlen+1];
    file.read(txt,txtlen);
    txt[txtlen]=0;
    char fstr[]="aaadrf";
 
    int slen=strlen(fstr);
    int * countchar=new int[slen];
    memset(countchar,0,slen*sizeof(*countchar));
    for(char *p=txt,*pf;*p;++p){
        if (pf=findchar(fstr,*p)) {
            ++(countchar[pf-fstr]);
        }
    }
    std::cout<<"Text:\n"<<txt;
    std::cout<<"\nFind:\n"<<fstr<<std::endl;
    for(int i=0;i<slen;++i){
        std::cout<<"Char "<<fstr[i]<<std::setw(5)<<countchar[i]<<std::endl;
    }
    delete [] countchar;
    delete [] txt;
    std::cin.get();
    getch();
}
при повторе символа считает неправильно, а вот если символ повторяется 1 раз - все в норме, как исправить этот нюанс?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.01.2013, 19:06     небольшая ошибочка
Посмотрите здесь:

Перегрузка оператора, ошибочка C++
C++ Ошибочка маленькая и не понятная(((
Работа с матрицами. Ошибочка C++
Ошибочка C++
C++ ошибочка с корнем
Class Book ошибочка C++
C++ ошибочка
C++ IsProcessRun ошибочка

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

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

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