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);
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 |
댓글