반응형

아래 코드는 사용자의 입력을 받아 만약 대문자면 소문자로 변환시키고, 소문자면 대문자로 변환시키는 코드이다.

원래 gets 함수를 사용했지만, visual studio에서는 gets_s를 써야 한다고 한다... 그 이유는

 

 최신 visual studio에서는 gets는 사용하지 않게 하고 gets를 오버로드한 gets_s를 사용하라고 권장합니다. 

gets의 문제는 버퍼 오버플로우가 날 수 있기 때문에, 그것을 방지 하기 위해서 조금 안전하게 gets_s를 만들어서 제공하는 것 입니다.

출처: https://blockdmask.tistory.com/343 [개발자 지망생]

 

라고 한다.

 

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


int main()
{
	char str[100];

	printf("write down:\n");
	gets_s(str);


	for (int i = 0; str[i]; i++)
	{
		if (str[i] >= 65 && str[i] <= 90)
		{
			str[i] = str[i] + 32;                       // 대문자->소문자
		}
		else if (str[i] >= 97 && str[i] <= 122)         // 소문자->대문자
		{
			str[i] = str[i] - 32;
		}
	}
	printf("%s\n", str);

	return 0;
}

 

(실행 결과)

반응형

소문자 abcd를 입력하면, ABCD로 변환된다.

대문자 APPLE 입력하면 소문자 apple으로 변환된다.

대소문자를 섞어쓰면?

소문자->대문자로 변환

대문자->소문자로 변환

위 코드를 응용해서 쓰길 바란다.

 

 

(문자로 입력받은 아스키코드 char타입을 연산이 가능한 int형으로 변환하는 예제 코드)

https://ansan-survivor.tistory.com/1034

 

[C언어] c언어 char -> int 변환 (C언어 문자열 정수 변환, 아스키코드 변환)

아래 char[] 배열 내에 String형태로 "1234"를 넣었다. 이 내부에 1234는 정수형 타입이 아니고 문자형태이다. 즉 아스키코드가 49,50,51,52,NULL 이렇게 들어간 것이다. 이를 정수형태 integer 형태로 바꿔주

ansan-survivor.tistory.com

 

반응형

+ Recent posts