단어수 세는 프로그램에서 단어수를 체크하는 기준으로 ' ', '\n' 이렇게 두개만 썼는데요 만약 txt파일에 I am your father. I am not your mother. 이런식으로 있을때 만약에 마지막 father. 다음에 띄어쓰기가 한칸 들어가있으면 어떻게 처리해줘야하죠? I am your father.' ''\n' 이런식으로요. 띄어쓰기가 한칸 더 들어가 있으니까 단어수를 한번 더 체크하게 되네요.
"단어"란 무엇이죠? 단어 수를 세기 위해서는 "단어"가 무엇인지 정확히 알아야 할 텐데요.
코드에 앞서 명확한 문제 정의가 있어야 문제를 해결할 방법을 논할 수 있습니다. 유감스럽게도 초보자들이 많이 간과하는 부분이기도 하죠.
저기서 단어는 I, am, your, father, 이렇게 하나씩 나눠지는 것입니다.
http://codepad.org/HCKUWAvn
#include <stdio.h> void fn(char buf[100]) { int i = 0; int len = strlen(buf); int cnt = 0; int max = 0; while(1) { //마지막. 구분자는 지정해주세요. if(buf[i] == 0x00) { max++; break; } if(('a' <= buf[i]) && (buf[i] <= 'z')) { printf("%c", buf[i]); cnt++; } else if(('A' <= buf[i]) && (buf[i] <= 'Z')) { printf("%c", buf[i]); cnt++; } else { cnt = 0; max++; printf(" "); } i++; } printf("\n"); printf("max : %d\n", max); } int main() { int i; int j; int k; //97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 for(i='a'; i<'z'; i++) { printf("%d ", i); } printf("\n"); //65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 for(i='A'; i<'Z'; i++) { printf("%d ", i); } printf("\n"); char buf1[100] = {"I am your father"}; char buf2[100] = {"I am not your mother"}; fn(buf1); return 0; } // 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 I am your father max : 4
---------------------------------------------------------------------------- 젊음'은 모든것을 가능하게 만든다.
매일 1억명이 사용하는 프로그램을 함께 만들어보고 싶습니다. 정규 근로 시간을 지키는. 야근 없는 회사와 거래합니다.
각 분야별. 좋은 책'이나 사이트' 블로그' 링크 소개 받습니다. shintx@naver.com
'현재 단어를 읽는 중인지 아닌지'를 나타내는 변수를 하나 더 쓰시면 되죠.
이 변수는 단어를 구성할 수 있는 문자를 읽으면 1로 세팅되고, 구분자(현재 스페이스 또는 개행문자)를 읽으면 0으로 바뀌도록 하고요.
기존에는 '스페이스 또는 개행문자를 읽으면' 카운트를 1증가시켰다면, 새 코드에서는 '스페이스 또는 개행문자를 읽었고, 현재 단어를 읽고 있는 중이었다면' 카운트를 증가시키도록 하시면 되겠죠.
좋은 하루 되세요!
텍스트 포맷에 대한 자세한 정보
<code>
<blockcode>
<apache>
<applescript>
<autoconf>
<awk>
<bash>
<c>
<cpp>
<css>
<diff>
<drupal5>
<drupal6>
<gdb>
<html>
<html5>
<java>
<javascript>
<ldif>
<lua>
<make>
<mysql>
<perl>
<perl6>
<php>
<pgsql>
<proftpd>
<python>
<reg>
<spec>
<ruby>
<foo>
[foo]
"단어"란 무엇이죠? 단어 수를 세기 위해서는 "단어
"단어"란 무엇이죠? 단어 수를 세기 위해서는 "단어"가 무엇인지 정확히 알아야 할 텐데요.
코드에 앞서 명확한 문제 정의가 있어야 문제를 해결할 방법을 논할 수 있습니다.
유감스럽게도 초보자들이 많이 간과하는 부분이기도 하죠.
저기서 단어는 I, am, your, father,
저기서 단어는 I, am, your, father, 이렇게 하나씩 나눠지는 것입니다.
참고해보세요.
http://codepad.org/HCKUWAvn
----------------------------------------------------------------------------
젊음'은 모든것을 가능하게 만든다.
매일 1억명이 사용하는 프로그램을 함께 만들어보고 싶습니다.
정규 근로 시간을 지키는. 야근 없는 회사와 거래합니다.
각 분야별. 좋은 책'이나 사이트' 블로그' 링크 소개 받습니다. shintx@naver.com
'현재 단어를 읽는 중인지 아닌지'를 나타내는 변수를
'현재 단어를 읽는 중인지 아닌지'를 나타내는 변수를 하나 더 쓰시면 되죠.
이 변수는 단어를 구성할 수 있는 문자를 읽으면 1로 세팅되고,
구분자(현재 스페이스 또는 개행문자)를 읽으면 0으로 바뀌도록 하고요.
기존에는 '스페이스 또는 개행문자를 읽으면' 카운트를 1증가시켰다면,
새 코드에서는 '스페이스 또는 개행문자를 읽었고, 현재 단어를 읽고 있는 중이었다면' 카운트를 증가시키도록 하시면 되겠죠.
좋은 하루 되세요!
댓글 달기