본문 바로가기

C C++/C C++ 유용한 알고리즘 기법17

[C/C++] 소문자-대문자 변환, 대문자-소문자 변환 알고리즘 문제 시 특히 소문자를 대문자로 변경 또는 대문자를 소문자로 변경하는 문제가 나오게 됩니다. 이 때 어떤 식으로 변경하면 손쉽게 변경할 수 있는 지 알아보겠습니다. 크게 3가지입니다. 단순 덧셈뺄셈연산, 비트 연산자 사용, 마지막으로 toupper() 함수와 tolower() 함수 사용입니다. 덧셈뺄셈 연산으로 소문자 대문자 변환하기 소문자가 대문자보다 32 큽니다. 둘 다 ASCII 코드입니다. 소문자 a와 z는 정수로 각각 97과 122를 가지고 있습니다. 대문자 A와 Z는 정수로 각각 65과 97을 가지고 있습니다. 적절히 32를 빼거나 더해줌으로써 소문자 대문자 변환을 할 수 있습니다. 아래는 입력된 "HeLLo"를 모두 소문자로 변경하는 코드입니다. 대문자 범위는 65~90이며, 소문자.. 2022. 7. 10.
[C/C++] 입력 받은 숫자 특정 자릿수 접근하기 숫자를 입력받았을 때 특정 자릿수를 가져올 수 있는 방법에 대해 공유하겠습니다. 입력 받은 숫자 특정 자릿수만 가져오기 - char arr[10] 등 문자열 배열을 선언한다. - 입력된 숫자를 문자열로 받는다. - 각 자릿수를 합쳐 숫자로 변환한다. 입력 받은 숫자 특정 자릿수만 가져오는 소스 코드를 보겠습니다. #include int main() { char arr[4]; int number; scanf("%s", arr); number = 10*(arr[0]-'0')+1*(arr[1]-'0'); printf("%d",number); return 0; } for문을 통해 각 배열 요소에 숫자가 담았습니다. 1234인 경우 arr[0] ~ arr[3]까지 각 요소에 1,2,3,4가 담깁니다. 문자로 담깁.. 2022. 7. 9.
[C/C++] 최솟값 최댓값 찾기 C/C++에서 최솟값과 최댓값 찾는 법을 간단히 소개하도록 하겠습니다. 최솟값 최댓값 찾기 - int min, int max 등의 최솟값과 최댓값을 담는 변수를 선언합니다. - min값보다 작을 때 작은 값으로 업데이트합니다. - max값보다 클 때 큰 값으로 업데이트합니다. 입력된 숫자에서 최솟값과 최댓값의 차이를 구하는 소스 코드를 보겠습니다. #include int main() { int t,num,max=-1,min=101; std::cin>>t; for (int i = 0; i>num; if (num>max) max=num; if (num 2022. 7. 9.
C언어 char형과 char*형 차이, %s, %c의 차이 오늘은 알고리즘 문제를 풀다 보니 char형과 char*형, %s와 %c 서식 차이에 대해 깊게 알 필요가 있어 아래와 같이 정리하려고 한다. char형과 char*형 차이 char형은 문자로 하나의 문자를 담을 수 있다. 다만 char a[10];과 같이 배열로 선언할 수 있다. char*형은 포인터를 통해 문자열을 가리킬 수 있다. char*형은 예를 들어 char* a = "Hello World"라고 선언하는 경우, 메모리에 저장된 Hello World의 첫 'H'가 담긴 첫 주소값을 가리키고 있게 된다. %s와 %c의 차이 %s: char* 형을 필요로 한다. 즉, 문자열 포인터가 입력으로 들어가야 한다. 출력할 때는 지정된 주소부터 \0(NULL)이 나올 때까지 출력한다. %c: char형을 필.. 2022. 7. 3.