본문 바로가기
C & C++/C & C++

문장에서 문자수 계산하는 프로그램

by izen8 2009. 12. 18.
반응형

MSDN 참조

/* STRTOK.C: In this program, a loop uses strtok
* to print all the tokens (separated by commas
* or blanks) in the string named "string".
*/

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

char string[] = "A string\tof ,,tokens\nand some  more tokens";
char seps[]   = " ,\t\n"; //분리할 문자 집합
char *token;

void main( void )
{
  printf( "%s\n\nTokens:\n", string );
  /* Establish string and get the first token: */
  token = strtok( string, seps );
  while( token != NULL )
  {
     /* While there are tokens in "string" */
     printf( " %s\n", token );
     /* Get next token: */
     token = strtok( NULL, seps );
  }
}



예제

/******************************************************************/
/*                                                                                                */
/*  키보드로 영어로 된 문장을 입력하면, 띄어쓰기를 제외한                  */
/*  문자의 수와 단어의 수를 계산하여 출력하는 프로그램을 작성하세요.  */
/*                                                                                                */
/******************************************************************/

#include <stdio.h>
#include <malloc.h>

int char_count(char *str)
{
 int count = 0;
 while(*str != '\0')
  if(isalnum(*str++))
   count++;
 return count;
}

int word_count(char *str)
{
 int count = 0;
 char seps[]   = " "; //분리할 문자 집합
 char *token;

 token = strtok( str, seps );
 while( token != NULL )
 {
  //printf( " %s\n", token );  // 문자별 출력
  count++;
  token = strtok( NULL, seps );
 }
 return count;
}

main()
{
 int word_num, char_num;
 char *input=(char*)malloc(sizeof(char));
 
 gets(input);

 char_num = char_count(input);
 word_num = word_count(input);
 putchar('\n');
 
 printf("입력하신 문장에서 문자의 수는 : %d\n", char_num);
 printf("입력하신 문장에서 단어의 수는 : %d\n", word_num);
}
반응형

'C & C++ > C & C++' 카테고리의 다른 글

[Etc] HDD 용량출력  (0) 2011.01.12
rand() 함수  (0) 2010.04.26
string.h에 있는 함수들에 대한 설명  (0) 2009.12.18
stdafx.h  (0) 2009.12.18
(교재) C 예제들  (0) 2009.10.31

댓글