067. 문자열 중에서 일치되지 않는 첫 문자의 위치 구하기(strspn)067. 문자열 중에서 일치되지 않는 첫 문자의 위치 구하기(strspn)

Posted at 2011. 1. 31. 03:38 | Posted in Computer/초보자를 위한 C 언어 300제
#include <stdio.h>
#include <string.h>

void main( void )
{
	char *string = "this is a very good!";
	char *strCharSet = "abcdefghijklmnopqrstuvwxyz";	// 주의:공백 포함
	unsigned int pos;

	pos = strspn( string, strCharSet );

	puts( "0         1         2         3" );
	puts( "0123456789012345678901234567890" );
	puts( string );
	puts( strCharSet );

	printf( "%d 위치에서 일치되지 않는 문자를 발견하였습니다.\n", pos );
}
//

066. 문자열 중에서 일치되는 첫 문자의 위치 구하기(strcspn)066. 문자열 중에서 일치되는 첫 문자의 위치 구하기(strcspn)

Posted at 2011. 1. 31. 03:34 | Posted in Computer/초보자를 위한 C 언어 300제
#include <stdio.h>
#include <string.h>

void main( void )
{
	char *string = "This is a string $$$";
	char *strCharSet = "~!@#$%^&*()_+-={}[]:;'<>./?";
	unsigned int pos;

	pos = strcspn( string, strCharSet );

	puts( "0         1         2         3" );
	puts( "0123456789012345678901234567890" );
	puts( string );
	puts( strCharSet );

	printf( "%d 위치에서 일치되는 첫 문자를 발견하였습니다.\n", pos );
}
//

065. 문자열 중에서 문자 검색하기(strchr)065. 문자열 중에서 문자 검색하기(strchr)

Posted at 2011. 1. 31. 03:30 | Posted in Computer/초보자를 위한 C 언어 300제
#include <stdio.h>
#include <string.h>

#define FIND_CHAR 'h'

void main( void )
{
	char string[100];
	char *ret;

	puts( "문자열을 입력한 후 Enter키를 치세요!" );
	puts( "문자열 중에 'h'가 포함되어 있으면, 프로그램은 종료됩니다." );

	do
	{
		gets( string );

		ret = strchr( string, FIND_CHAR );

		if( ret != NULL )
		{
			puts( "문자열 중에 'h'가 없습니다." );
		}
		else
		{
			printf( "%d 위치에서 'h' 문자를 찾았습니다.", ret - string );
			break;
		}

	} while( 1 );
}
//

064. 문자열 검색하기(strstr)064. 문자열 검색하기(strstr)

Posted at 2011. 1. 31. 03:24 | Posted in Computer/초보자를 위한 C 언어 300제
#include <stdio.h>
#include <string.h>

#define SKY "sky"

void main( void )
{
	char string[100];
	char *ret;

	puts( "문자열을 입력한 후 Enter키를 치세요!" );
	puts( "문자열 중에 sky가 포함되어 있으면, 프로그램은 종료됩니다." );

	do
	{
		gets( string );

		ret = strstr( string, SKY );

		if( ret == NULL )
		{
			puts( "문자열 중에 sky가 없습니다." );
		}
		else
		{
			printf( "%d 위치에서 sky 문자열을 찾았습니다.", ret - string );
			break;
		}

	} while( 1 );
}
//

063. 문자열의 길이 구하기(strlen)063. 문자열의 길이 구하기(strlen)

Posted at 2011. 1. 30. 18:52 | Posted in Computer/초보자를 위한 C 언어 300제
#include <stdio.h>
#include <string.h>

void main( void )
{
	char string[200];

	printf( "문장을 입력한 후, Enter 키를 치세요!\n" );
	printf( "아무것도 입력하지 않으면 프로그램은 종료됩니다!\n" );

	do
	{
		gets( string );

		if( strlen(string) == 0 )
		{
			break;
		}

		printf( "문자열의 길이는 %d입니다. \n", strlen(string) );

	} while( 1 );
}
//

062. 문자열 연결하기(strcat)062. 문자열 연결하기(strcat)

Posted at 2011. 1. 30. 18:16 | Posted in Computer/초보자를 위한 C 언어 300제
#include <stdio.h>
#include <string.h>

void main( void )
{
	char string1[100];
	char string2[100];

	printf( "첫 번째 단어를 입력하세요!\n" );
	gets( string1 );

	printf( "두 번째 단어를 입력하세요!\n" );
	gets( string2 );

	strcat( string1, string2 );

	puts( string1 );
}
//

061. 문자열을 일정 크기만큼 비교하기(strcmp)061. 문자열을 일정 크기만큼 비교하기(strcmp)

Posted at 2011. 1. 30. 18:14 | Posted in Computer/초보자를 위한 C 언어 300제
#include <stdio.h>
#include <string.h>

#define SKY "sky"

void main( void )
{
	char string[100];
	int ret;

	printf( "영단어를 입력한 후 Enter키를 치세요!\n" );
	printf( "sky로 시작되는 단어를 입력하면 프로그램이 종료됩니다. \n" );

	do
	{
		gets( string );

		ret = strcmp( string, SKY, 3 );

		if( ret == 0 )
		{
			printf( "%3.3s == %s, ret = %d \n", string, SKY, ret );
			break;
		}
		else if( ret < 0 ) printf( "%s < %s, ret = %d \n", string, SKY, ret );
		else printf( "%s > %s, ret = %d \n", string, SKY, ret );

	} while( 1 );
}
//

060. 문자열을 비교하는 함수 만들기060. 문자열을 비교하는 함수 만들기

Posted at 2011. 1. 30. 18:05 | Posted in Computer/초보자를 위한 C 언어 300제
#include <stdio.h>

#define SKY "sky"

int My_strcmp( const char* string1, const char* string2 );

void main( void )
{
	char string[100];
	int ret;

	printf( "영단어를 입력한 후 Enter키를 치세요!\n" );
	printf( "sky를 입력하면 프로그램이 종료됩니다. \n" );

	do
	{
		gets( string );

		ret = My_strcmp( string, SKY );

		if( ret == 0 )
		{
			printf( "%s == %s, ret = %d \n", string, SKY, ret );
			break;
		}
		else if( ret < 0 ) printf( "%s < %s, ret = %d \n", string, SKY, ret );
		else printf( "%s > %s, ret = %d \n", string, SKY, ret );

	} while( 1 );
}

int My_strcmp( const char* string1, const char* string2 )
{
	if( *string1 == (int)NULL && *string2 == (int)NULL ) return 0;

	while( *string1 != (int)NULL )
	{
		if( *string2 == (int)NULL ) return 1;

		if( *string1 == *string2 )
		{
			string1++;
			string2++;
			continue;		// 36번째 줄로 이동
		}

		if( *string1 < *string2 ) return -1;
		else return 1;
	}

	if( *string2 != (int)NULL ) return -1;

	return 0;
}
//

059. 문자열을 대·소문자로 구분하여 비교하기(strcmp)059. 문자열을 대·소문자로 구분하여 비교하기(strcmp)

Posted at 2011. 1. 30. 17:58 | Posted in Computer/초보자를 위한 C 언어 300제
#include <stdio.h>
#include <string.h>

#define SKY "sky"

void main( void )
{
	char string[100];
	int ret;

	printf( "영단어를 입력한 후 Enter키를 치세요!\n" );
	printf( "sky를 입력하면 프로그램이 종료됩니다. \n" );

	do
	{
		gets( string );

		ret = strcmp( string, SKY );

		if( ret == 0 )
		{
			printf( "%s == %s, ret = %d \n", string, SKY, ret );
			break;
		}
		else if( ret < 0 ) printf( "%s < %s, ret = %d \n", string, SKY, ret );
		else printf( "%s > %s, ret = %d \n", string, SKY, ret );

	} while( 1 );
}
//

058. 문자열을 복사하는 함수 만들기058. 문자열을 복사하는 함수 만들기

Posted at 2011. 1. 30. 17:52 | Posted in Computer/초보자를 위한 C 언어 300제
#include <stdio.h>

#define KOREA "대한민국"

char* My_strcpy( char* dest, const char* src );

void main( void )
{
	char string[100];

	My_strcpy( string, KOREA );

	puts( string );		// 대한민국을 출력
}

char* My_strcpy( char* dest, const char* src )
{
	if( dest == (int)NULL || src == (int)NULL )
	{
		if( *dest != (int)NULL ) *dest =(int)NULL;
		return NULL;
	}

	do
	{
		*dest++ = *src;
	}
	while( *src++ != (int)NULL );

	return dest;
}
//