오유인페이지
개인차단 상태
BePositive님의 개인페이지입니다
회원가입 : 11-09-19
방문횟수 : 1489회
닉네임 변경이력
일반
베스트
베오베
댓글
20 2012-05-01 05:12:06 0
c언어 코드 질문좀드릴게요.. [새창]
2012/04/30 22:16:21
우왕 댓글 많이 달렸네요...
음.. 질문 작성자가 나름 고민 많이 하신 것 같은데,저라면 이렇게 짤 거에요.

각 배열의 인덱스는 영대문자, 영소문자, 숫자, 공백의 순서와 매치시키고,
각 배열의 값은 문자열에서 출현한 순서를 기록하도록 합니다.

이건 위 댓글의 컨셉과 비슷할겁니다. 하지만 위 소스들은 가독성이 무척 떨어지네요.
참고로 gets 쓰지 마세요. 기억장소의 끝을 검사하지 않아 좋지 않습니다.
코딩에서 아주 중요한 사항 중 하나는, 프로그램이 실행되는 논리가 눈에 잘 보여야 한다는 겁니다.

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>

#define LINE_MAX 255

void char_count(const char* str, const int str_len);

int main(int argc, char** argv)
{
char str[LINE_MAX];
int str_len;

fgets(str, LINE_MAX, stdin);
str_len = strlen(str);

char_count(str, str_len);

return EXIT_SUCCESS;
}

void char_count(const char* str, const int str_len)
{
int upper_slot[26] = {0, };
int lower_slot[26] = {0, };
int num_slot[10] = {0, };
int white_slot[1] = {0};
int idx;
int i;

for(i = 0; i < str_len; ++i)
{
if(isupper(str[i]))
{
idx = str[i] - 'A';
++upper_slot[idx];
}

else if(islower(str[i]))
{
idx = str[i] - 'a';
++lower_slot[idx];
}

else if(isdigit(str[i]))
{
idx = str[i] - '0';
++num_slot[idx];
}
else if(str[i] == ' ')
{
++white_slot[0];
}
}

for(i = 0; i < 26; ++i)
if(upper_slot[i] != 0)
printf("%c(%d) ", 'A' + i, upper_slot[i]);

for(i = 0; i < 26; ++i)
if(lower_slot[i] != 0)
printf("%c(%d) ", 'a' + i, lower_slot[i]);

for(i = 0; i < 10; ++i)
if(num_slot[i] != 0)
printf("%c(%d) ", '0' + i, num_slot[i]);

for(i = 0; i < 1; ++i)
if(white_slot[i] != 0)
printf("<blank>(%d) ", white_slot[i]);

putchar('n');
}
19 2012-04-30 09:42:44 0
html 아시는분 도움점~ [새창]
2012/04/30 09:06:37
다른 기기에서 html을 접속하려면 웹서버가 있어야 합니다. 무료 계정 주는 곳을 찾아서 html 파일을 올리세요.
간단한 방법으로는~단순 html이라면 드랍박스 public 디렉토리를 이용하세요.
18 2012-04-25 23:01:13 0
윈도우 관련 질문드려요 [새창]
2012/04/25 21:55:48
업그레이드 버전일 경우, 이전 버전의 윈도우가 반드시 설치되어 있어야 합니다.
기존 윈도우가 설치되어 있지 않은 컴퓨터에 윈도우 7 업그레이드 버전은 설치되지 않습니다.
하지만 업그레이드 버전이라 할지라도 클린 인스톨은 가능합니다. 다시말해 윈도우 XP가 설치되어 있는 PC에 윈도우 7 업그레이드 버전을 이용하여 기존의 윈도우 XP를 완전히 삭제하고 새로운 윈도우 7 시스템을 설치하는 것은 가능합니다. 하지만 완전 포맷된 PC에 윈도우 7 업그레이드 버전은 설치되지 않아요. 직접 해 보기도 했습니다.
17 2012-04-23 08:36:19 0
c언어 공부중에 질문이요. [새창]
2012/04/22 22:44:40
엽전한냥두냥//
그건 sequential search 구요. 이 소스는 이진 탐색 (binary search) 알고리즘입니다.
자료 구조 공부하면 제일 처음 만나는 부분이기도 합니다.
위 소스가 알려주고 싶은 건 이진 탐색을 수행하는 컨셉에 대한 겁니다.
솔직히 저 compare 함수는 병맛이긴 하지만, compare 함수 수행 방식 자체가 제가 되진 않습니다. 올바로 작동하거든요.
이진검색이 말하고자 하는 컨셉만 이 소스에서 확인하세요.

mid = (left + right) / 2;
는,,, 홀수든 짝수든 위 변수는 정수이기 때문에,
2로 나누든 뭐로 나누든 소수점이 나오지 않는다는 기본적인 사실을 주지하시면 이해할 수 있을 겁니다.

16 2012-04-18 23:17:34 0
다들 컴퓨터를 물어볼때 저는 c언어를 물어보겠어요 [새창]
2012/04/18 18:58:56
참고로 float, double 둘 다 받는 옵션은 %g.
멘붕하기 전에 서식 제어 문자에 대해 공부하세요. %3.5lf, %04.2f 등등.

15 2012-04-18 17:55:22 0
컴퓨터 프로그래밍을 배우고 싶습니다. [새창]
2012/04/18 15:10:44
뼈 있는 농담인데요? 프로그래밍을 왜 배워야하는지 동기도 모르는 채 자바가 좋아요? C 가 좋아요? 따위 질문은 무의미하죠.

14 2012-04-18 04:48:56 0
TCPL [ex 7-1] [새창]
2012/04/18 00:01:18
so what?
13 2012-04-18 04:47:07 0
혹시 이런 프로그램 있나요? [새창]
2012/04/18 00:47:19
요구사항 자체를 이해할 수 없네요. 구현 정도는 어떤 방식으로 가능하련만?
12 2012-04-18 04:45:05 0
c언어하다가 멘붕이.. [새창]
2012/04/18 01:06:48
x, y, z 입력 말고 입력 받는게 있나요?
11 2012-04-17 02:53:11 0
엑셀 VBA에 잘 아시는 분? [새창]
2012/04/17 01:40:56
취미로 VBA 해 보았습니다. 업무 효율성에 대해서는 답해드릴 수 없지만 책은 John Walkenbach, 엑셀 VBA 바이블, 프리렉 추천해주고 싶습니다. 예전에 (Office 2003, XP 시절) 봤던 책입니다. 감 잡는데 도움이 될 겁니다.
10 2012-04-15 22:50:59 0
컴퓨터IT개론 숙제좀 도와주세요~~~ [새창]
2012/04/15 21:09:09
숙제는 스스로 하세요.
9 2012-04-07 04:46:07 0
희소행렬 출력하는 C코드좀 알려주세요.....으어 [새창]
2012/04/07 03:46:21
이건 C도 아니고 CPP도 아니고 뒤죽박죽인 것 같은데, 그건 아무튼 상관없고,
뭐가 문제인지는 같이 설명해주어야 하지 않을까 하네요.
그리고 코드만 잡고 있지 말고 아는게 뭐고 모르는게 뭔지 정리 한 다음 코딩하세요.
8 2012-03-29 11:53:34 0
우분투가 안깔리는 노트북도 있나요 ?? [새창]
2012/03/29 01:21:25
예전에 우분투 설치 때 같은 현상을 가끔 겪은 적이 있습니다. 구차니 님 말씀대로 acpi 문제일 수 있습니다. 씨디 부팅할 때 acpi=off 옵션을 줘 보세요. 그리고 구글 검색… 저도 아는 게 여기까지밖엔 없네요. :)
7 2012-03-29 11:42:42 0
Ksana님! 프로그램 다시 돌려봤습니다~~ [새창]
2012/03/28 23:23:16
우선 잘 동작한다니 다행이네요. 심플한 프로그램이라 자체 자막 등 복잡(?)한 기능은 고려하지 않았습니다.
유용한 프로그램이 되었으면 좋겠습니다.
6 2012-03-28 19:44:55 0
동영상 - 자막 파일 변경 자작 프로그램입니다 (SubRenam [새창]
2012/03/28 14:59:35
// 통통마쿠트 님
충분히 테스트하기 여의치 않은 점 죄송합니다. 문제를 발견하여 파일을 수정하였습니다.
다시 한 번 테스트해 주시면 감사하겠습니다.
< 이전페이지 다음페이지 >
< 36 37 38
◀뒤로가기
PC버전
맨위로▲
공지 운영 자료창고 청소년보호