프로그래밍 언어/유용한함수

C언어로 배열에있는 값을 대문자or소문자로 치환하기

원원 2024. 1. 28. 12:07

안녕하세요. 오늘은 배열에 있는 값을 대문자or소문자로 치환해보는 함수를 만들어보겠습니다


먼저 알아야 할 내용은 아스키코드에있는 a~z, A~Z값입니다

a~z는 97~122이고 A~Z는 65~98입니다
각 문자의 차이는 32가 납니다
그래서 A에 32를 더하면 97이고 a입니다

이러한 방식으로 함수를 만들면 됩니다

#include <stdio.h>

void stringToUpper(char *str)
{
	char s;
	int i;
	
	for(i=0; i<100 ; i++)
	{
		s = str[i];
		if(s == 0)
		{
			break;
		}
			
		if((s>='a')&&(s<='z'))
		{
			s = s-32;
		}
		
		str[i] = s;
	}
}

void stringToLower(char *str)
{
	char s;
	int i;
	
	for(i=0; i<100 ; i++)
	{
		s = str[i];
		if(s == 0)
		{
			break;
		}
			
		if((s>='A')&&(s<='Z'))
		{
			s = s+32;
		}
		
		str[i] = s;
	}
}

int main()
{
	char str[] = "WowONE";
	
	printf("Original str : %s \n", str);
	stringToUpper(str);
	printf("After stringToUpper function call str : %s \n\n", str);
	
	printf("Original str : %s \n", str);
	stringToLower(str);
	printf("After stringToLower function call str : %s \n", str);
}


WowONE문자열을 stringToUpper함수를 호출해서 대문자로 만들었습니다. 그 다음에 WOWONE문자열을 stringToLower함수를 호출해서 소문자로 만들었습니다.