본문 바로가기
프로그래머스코딩테스트연습풀이/C언어

[프로그래머스/C언어] 배열에서 문자열 대소문자 변환하기

by 코코쵸마 2023. 8. 13.

문제

문자열 배열 strArr가 주어집니다. 모든 원소가 알파벳으로만 이루어져 있을 때, 배열에서 홀수번째 인덱스의 문자열은 모든 문자를 대문자로, 짝수번째 인덱스의 문자열은 모든 문자를 소문자로 바꿔서 반환하는 solution 함수를 완성해 주세요.

 

솔루션

#include <stdio.h>
#include <stdbool.h>
#include <stdlib.h>
#include <ctype.h>
#include <string.h>

// strArr_len은 배열 strArr의 길이입니다.
// 파라미터로 주어지는 문자열은 const로 주어집니다. 변경하려면 문자열을 복사해서 사용하세요.
char** solution(const char* strArr[], size_t strArr_len) {
    // return 값은 malloc 등 동적 할당을 사용해주세요. 할당 길이는 상황에 맞게 변경해주세요.
    char** answer = (char**)malloc(sizeof(char*) * 20);

    for (int i = 0; i < strArr_len; i++)
    {
        answer[i] = (char *)malloc(sizeof(char) * 20);
    }
    int j;
    for(int i = 0; i < strArr_len; i++){
        for(j = 0; j < strlen(strArr[i]); j++)
        {
            if(i % 2 == 0)
                answer[i][j] = tolower(strArr[i][j]);
            else
                answer[i][j] = toupper(strArr[i][j]);
        }
    answer[i][j] = '\0';
    }
    return answer;
}

이차원배열 동적할당에서 헤맸다

이차원배열이기 때문에 for문을 돌려가며 동적할당하는 과정이 필요했다

https://school.programmers.co.kr/learn/courses/30/lessons/181875#qna

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr