본문 바로가기
C언어

[C언어] 문자열을 입력받아 대문자로 변환하는 함수 str_upper(char *s)를 작성하고 테스트하시오

by 이얏호이야호 2020. 5. 4.

소문자를 대문자로 변환하는 함수를 작성하는 프로그램을 가지고 왔습니다.

물론 단번에 코드를 본다면 좋기야 하겠지만 장기적으로 봤을때

혼자풀어보기 -> 힌트 -> 코드보기 순으로 공부하시는게 실력 향상에 큰 도움이 됩니다!

힌트를 보고 천천히 생각을 거쳐서 문제를 풀어보시고

답안을 확인해보세요

 

더보기
결과1
abcdefg 입력의 경우 출력
출력
KBefG입력의 경우 출력

abcdefg를 입력한다면 ABCDEFG가 출력이되고

KBefG를 입력한다면 KBEFG가 출력이 되야합니다.

if 문을 사용해서 소문자에 해당한다고 판단이 되는 경우

아스키 코드를 활용해서 문제를 해결하면 됩니다.

소문자 - 32 = 대문자 가 출력이 되는 것에 착안

a - 32 = A  

b - 32 = B

c - 32 = C

기본 틀입니다. 

#include <string.h>

#include <stdio.h>

#define SIZE 100

void str_upper(char *s) {

	int i;

	int count=0;

	for (i=0;i<strlen(s);i++) {

		//아스키코드를 활용하여 대문자로 변환하는 작업		

	}

}

int main(void) {

	char str[SIZE];

	printf("문자열을 입력하시오: ");

	gets(str);

	str_upper(str);

	printf("변환된 문자열: %s\n", str);

	return 0;

}

 

 

 

 

더보기
abcdefg 입력의 경우 출력
KBefG입력의 경우 출력
#include <string.h>

#include <stdio.h>

#define SIZE 100

void str_upper(char *s) {

	int i;

	int count=0;

	for (i=0;i<strlen(s);i++) {

		if( s[i] >='a' && s[i] <= 'z' )			//아스키코드에서 -32를 빼줘 대문자로 변환

		s[i] = s[i] - 32;

	}

}

int main(void) {

	char str[SIZE];

	printf("문자열을 입력하시오: ");

	gets(str);

	str_upper(str);

	printf("변환된 문자열: %s\n", str);

	return 0;

}

 

 

 

 

 

 

 

더 많은 C언어 글이 궁금하다면?

https://chuinggun.tistory.com/category/C%EC%96%B8%EC%96%B4

 

댓글