문제설명
문자열의 소문자를 대문자로 대문자를 소문자로 변환 하여 반환

제한사항

입출력 예

말로하는 순서도
solution 함수 선언 및 매개변수 const char형 변환전 문자열 my_string 선언
int형 len이라는 문자열의 길이를 담을 변수선언 및 strlen을 사용하여 my_string의 길이를 담음
char형 포인터 answer 선언 char형 포인터 malloc를 사용하여 동적할당 문자열의 길이에 1을 더한값을 할당
for문 문자열의 길이만큼 반복 변수증가
if문 my_string의 for문 변수 위치의 값이 65보다 크거나 같고 my_string의 for문 위치의 값이 90보다 작거나 같다면
answer의 for문 변수위치에 my_string의 for문 변수위치의 값에 32를 더하여 값을 넣는다
if문 my_string의 for문 변수 위치의 값이 97보다 크거나 같고 my_string의 for문 위치의 값이 122보다 작거나 같다면
answer의 for문 변수위치에 my_string의 for문 변수위치의 값에 32를 뺀 값을 넣는다
answer에 문자열길이의값의 위치에 NULL을 넣는다
최종반환
소스코드
#include <stdio.h>
#include <stdbool.h>
#include <stdlib.h>
// 파라미터로 주어지는 문자열은 const로 주어집니다. 변경하려면 문자열을 복사해서 사용하세요.
char* solution(const char* my_string) {
// return 값은 malloc 등 동적 할당을 사용해주세요. 할당 길이는 상황에 맞게 변경해주세요.
int len= strlen(my_string);
char* answer = (char*)malloc(len+1);
for(int i=0;i<len;i++)
{
if(my_string[i]>=65&&my_string[i]<=90)
{
answer[i]=my_string[i]+32;
}
if(my_string[i]>=97&&my_string[i]<=122)
{
answer[i]=my_string[i]-32;
}
}
answer[len]=NULL;
return answer;
}
풀이
영어는 아스키코드의 값으로 있기에 아스키코드값을 수정하는것으로 구현 하였다
대문자 A가 65 Z가 90 소문자 a가 97 z가 122이기에 2개의 if문을 사용하였다
대문자와 소문자의 차이가 32이다 대문자에서 소문자로 갈때는 더하고 반대에는 빼기를 했다
마지막은 문자열의 끝을 알리는 NULL이다
출처: 프로그래머스 코딩테스트연습 입문문제, https://school.programmers.co.kr/learn/courses/30/lessons/120893
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
문제설명
문자열의 소문자를 대문자로 대문자를 소문자로 변환 하여 반환

제한사항

입출력 예

말로하는 순서도
solution 함수 선언 및 매개변수 const char형 변환전 문자열 my_string 선언
int형 len이라는 문자열의 길이를 담을 변수선언 및 strlen을 사용하여 my_string의 길이를 담음
char형 포인터 answer 선언 char형 포인터 malloc를 사용하여 동적할당 문자열의 길이에 1을 더한값을 할당
for문 문자열의 길이만큼 반복 변수증가
if문 my_string의 for문 변수 위치의 값이 65보다 크거나 같고 my_string의 for문 위치의 값이 90보다 작거나 같다면
answer의 for문 변수위치에 my_string의 for문 변수위치의 값에 32를 더하여 값을 넣는다
if문 my_string의 for문 변수 위치의 값이 97보다 크거나 같고 my_string의 for문 위치의 값이 122보다 작거나 같다면
answer의 for문 변수위치에 my_string의 for문 변수위치의 값에 32를 뺀 값을 넣는다
answer에 문자열길이의값의 위치에 NULL을 넣는다
최종반환
소스코드
#include <stdio.h> #include <stdbool.h> #include <stdlib.h> // 파라미터로 주어지는 문자열은 const로 주어집니다. 변경하려면 문자열을 복사해서 사용하세요. char* solution(const char* my_string) { // return 값은 malloc 등 동적 할당을 사용해주세요. 할당 길이는 상황에 맞게 변경해주세요. int len= strlen(my_string); char* answer = (char*)malloc(len+1); for(int i=0;i<len;i++) { if(my_string[i]>=65&&my_string[i]<=90) { answer[i]=my_string[i]+32; } if(my_string[i]>=97&&my_string[i]<=122) { answer[i]=my_string[i]-32; } } answer[len]=NULL; return answer; }
풀이
영어는 아스키코드의 값으로 있기에 아스키코드값을 수정하는것으로 구현 하였다
대문자 A가 65 Z가 90 소문자 a가 97 z가 122이기에 2개의 if문을 사용하였다
대문자와 소문자의 차이가 32이다 대문자에서 소문자로 갈때는 더하고 반대에는 빼기를 했다
마지막은 문자열의 끝을 알리는 NULL이다
출처: 프로그래머스 코딩테스트연습 입문문제, https://school.programmers.co.kr/learn/courses/30/lessons/120893
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr