c프로그래밍 질문!

momos의 이미지

단어수 세는 프로그램에서
단어수를 체크하는 기준으로 ' ', '\n' 이렇게 두개만 썼는데요
만약 txt파일에
I am your father.
I am not your mother.
이런식으로 있을때 만약에 마지막 father. 다음에 띄어쓰기가 한칸 들어가있으면 어떻게 처리해줘야하죠?
I am your father.' ''\n' 이런식으로요.
띄어쓰기가 한칸 더 들어가 있으니까 단어수를 한번 더 체크하게 되네요.

익명 사용자의 이미지

"단어"란 무엇이죠? 단어 수를 세기 위해서는 "단어"가 무엇인지 정확히 알아야 할 텐데요.

코드에 앞서 명확한 문제 정의가 있어야 문제를 해결할 방법을 논할 수 있습니다.
유감스럽게도 초보자들이 많이 간과하는 부분이기도 하죠.

익명 사용자의 이미지

저기서 단어는 I, am, your, father, 이렇게 하나씩 나눠지는 것입니다.

shint의 이미지

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

raymundo의 이미지

'현재 단어를 읽는 중인지 아닌지'를 나타내는 변수를 하나 더 쓰시면 되죠.

이 변수는 단어를 구성할 수 있는 문자를 읽으면 1로 세팅되고,
구분자(현재 스페이스 또는 개행문자)를 읽으면 0으로 바뀌도록 하고요.

기존에는 '스페이스 또는 개행문자를 읽으면' 카운트를 1증가시켰다면,
새 코드에서는 '스페이스 또는 개행문자를 읽었고, 현재 단어를 읽고 있는 중이었다면' 카운트를 증가시키도록 하시면 되겠죠.

좋은 하루 되세요!

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <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].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <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].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <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].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <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].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.