코딩테스트 - 번호가리기, C언어

728x90
반응형

주어진 번호의 뒷자리 4개를 제외하고 모두 '*'로 가리기 

 

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

// 파라미터로 주어지는 문자열은 const로 주어집니다. 변경하려면 문자열을 복사해서 사용하세요.
char* solution(const char* phone_number) {
    // return 값은 malloc 등 동적 할당을 사용해주세요. 할당 길이는 상황에 맞게 변경해주세요.
    char* answer = (char*)malloc(sizeof(char) * 20);
    int len = strlen(phone_number);
    int i = 0;
    
    while((len-i) > 4) {
        answer[i] = '*';
        i++;
    }
    strcpy(&answer[i], &phone_number[i]);
    
    return answer;
}

 

malloc으로 할당된 char 포인터 변수에 값을 넣을때는 ' '(작은따옴포)로 감싼 문자를 넣어야 들어감............하...

 

거의 대부분 반복문으로 해결했는데, 음.. 좀 참신하다 이코드는

 

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

// 파라미터로 주어지는 문자열은 const로 주어집니다. 변경하려면 문자열을 복사해서 사용하세요.
char* solution(const char* phone_number) {
    // return 값은 malloc 등 동적 할당을 사용해주세요. 할당 길이는 상황에 맞게 변경해주세요.
    char* answer = (char*)malloc(sizeof(char) * strlen(phone_number) + 1);
    char* star = "****************";

    strcpy(answer, phone_number);
    strncpy(answer, star, strlen(phone_number) - 4);

    return answer;
}

 

표준문자열 함수로 처리함. 뭐 이것도 방법이지.

 

- 끝 -

 

728x90
반응형