문자열 빈도수 계산 프로그램

[출처] http://ask.nate.com/knote/view.html?num=26898


경축! 아무것도 안하여 에스천사게임즈가 새로운 모습으로 재오픈 하였습니다.
어린이용이며, 설치가 필요없는 브라우저 게임입니다.
https://s1004games.com


/////////////////////////////// 
// 선행처리 지시자 
#include <stdio.h> 
#define STRMAX 512 // 처리 가능한 입력문자열의 크기 


/////////////////////////////// 
// 사용자정의 자료형 선언부 
typedef char* PCHAR; // char*형의 사용자정의 자료형 선언 


/////////////////////////////// 
// 전역변수 선언부 
char str[STRMAX]; // 입력 문자열을 저장할 버퍼 
int cnt; // 문자열 버퍼에 입력된 문자수 


/////////////////////////////// 
// 함수 선언부 
void input(void); // 결과출력 
void sortStr(void); // 문자정렬 
void output(void); // 결과출력 


/////////////////////////////// 
// 함수 정의부 
void input(void) 

printf(" 문자열 : "); 
scanf("%s", str); // 문자열 입력 입력받기 


void sortStr(void) 

// 버퍼내의 문자수 파악 
cnt=0; // 초기화 
for(int i=0; i<STRMAX; i++) 

if(!str[i]) break; 
cnt++; 

printf("\n 버퍼내의 문자 수 : %d \n", cnt); 
// 문자열 정렬 
for(i=0; i<cnt-1; i++) 
for(int j=(i+1); j<cnt; j++) 
if(str[i] > str[j]) 
str[i] ^= str[j] ^= str[i] ^= str[j]; 


void output(void) 

// 화면 출력 
printf("\n"); 
for(int i=0; i<cnt; i++) 

// 문자열내의 문자 반복수 조사 
char temp = str[i]; 
for(int j=(i+1), num=1; j<cnt; j++) 

if(str[j] == temp) 
num++; 
else 
break; 


// 사용된 문자와 반복회수 출력 
i += (num-1); 
printf(" %c %3d회 ", temp, num); 

// 문자의 출현 빈도 = 문자의 반복수 / 문자열의 크기 
float prob = float(num) / float(cnt); 
printf("출현 빈도 = %6.5f ", prob); 

// 반복 횟수만큼 '*'출력 
for(j=0; j<num; j++) 
printf("*"); 
printf("\n"); 

printf("\n"); 



/////////////////////////////// 
// 메인함수 정의부 
void main(void) 

input(); // 입력함수 호출 
sortStr(); // 문자열 정렬 
output(); // 출력함수 호출 

본 웹사이트는 광고를 포함하고 있습니다.
광고 클릭에서 발생하는 수익금은 모두 웹사이트 서버의 유지 및 관리, 그리고 기술 콘텐츠 향상을 위해 쓰여집니다.
번호 제목 글쓴이 날짜 조회 수
18 80 Linux Monitoring Tools 80개 리눅스 모니터링 툴 소개 file 졸리운_곰 2017.02.07 2996
17 [Ubuntu] 우분투 네트워크 설정 file 졸리운_곰 2017.02.07 584
16 우분투 16.04 원격 데스크탑 설정 file 졸리운_곰 2017.01.27 471
15 리눅스 7z 압축 풀기, 압축 하기 졸리운_곰 2017.01.05 863
14 [팁] rsync를 이용한 미러링 : 리눅스 미러링 : linux mirroring 졸리운_곰 2016.05.22 544
13 국제공인 리눅스마스터 시험 LPI Level 1 덤프 : Linux LPI level 1 dump file 졸리운_곰 2015.09.13 503
12 리눅스에서 폴더 통째로 복사하기 졸리운_곰 2015.06.10 672
11 리눅스마스터 2015-03-28 발표 secret 졸리운_곰 2015.03.28 0
10 리눅스마스터 2015-03 2급 필기 LMS-1501회_2급2차_B형.pdf file 졸리운_곰 2015.03.17 687
9 리눅스마스터 2015-03 필기 LMF_1급1차(1501회)_B형 file 졸리운_곰 2015.03.17 556
8 리눅스마스터 1급 1차 필기 기출문제 2 file 졸리운_곰 2015.03.04 501
7 리눅스마스터 1급 2차 실기 기출문제 file 졸리운_곰 2015.03.03 811
6 리눅스마스터 1급 1차 필기 기출문제 file 졸리운_곰 2015.03.03 520
5 리눅스_부하분산_클러스터_구축_linux_cluster_alang.pdf file 졸리운_곰 2014.11.11 550
4 linux 백그라운드 프로세스를 로그아웃시에도 실행하도록 설정 졸리운_곰 2014.10.23 548
3 Restart VNC Server via SSH 졸리운_곰 2014.10.16 379
2 리눅스마스터 1급 2차 실기 기출문제 및 정답 file 졸리운_곰 2014.09.07 1368
1 리눅스마스터 1급 필기 - 2013/2014년 기출문제 file 졸리운_곰 2014.09.07 562
대표 김성준 주소 : 경기 용인 분당수지 U타워 등록번호 : 142-07-27414
통신판매업 신고 : 제2012-용인수지-0185호 출판업 신고 : 수지구청 제 123호 개인정보보호최고책임자 : 김성준 sjkim70@stechstar.com
대표전화 : 010-4589-2193 [fax] 02-6280-1294 COPYRIGHT(C) stechstar.com ALL RIGHTS RESERVED