프로그래머스 레벨1 가운데 글자 가져오기 문제입니다.
- 문제: 단어 s의 가운데 글자를 반환하는 함수, solution을 만들어 보세요. 단어의 길이가 짝수라면 가운데 두글자를 반환하면 됩니다.
- 제한사항: s는 길이가 1 이상, 100이하인 스트링입니다.
- 언어: C
#include <stdio.h>
#include <stdbool.h>
#include <stdlib.h>
#include <string.h>
char* solution(const char* s) {
char* answer = (char*)malloc(2);
int len = strlen(s);
if(len%2){ //odd
int mid = len/2;
answer[0] = s[mid];
}
else{ //even
int mid = len/2-1;
answer[0] = s[mid];
answer[1] = s[mid+1];
}
return answer;
}
*홀짝 구분
a%2 == 1 이면 홀수
a%2 == 0 이면 짝수
- 언어: C++
#include <string>
#include <vector>
using namespace std;
string solution(string s) {
string answer = "";
int len = s.length();
if(len%2){
answer.push_back(s[len/2]);
}
else{
answer.push_back(s[len/2-1]);
answer.push_back(s[len/2]);
}
return answer;
}
c언어와는 달리 c++은 string클래스를 사용하여 문자열을 다룬다.
C++에서의 차이점은 문자열의 끝에 '\0'이 붙지않다는 것이다.
문자열의 인자에 접근할 때는 똑같이 []를 사용하면 되지만, 길이를 구할 때는 strlen() 대신 .length()를 사용하고 문자열에 새로운 변수를 대입할 때는 .push_back() 함수를 사용한다.
*void push_back(char c);
함수를 호출하는 string의 맨뒤에 문자 c를 추가한다.
예. str.push_back('c');
*void pop_back();
함수를 호출하는 string의 맨뒤에 있는 문자를 삭제한다.
예. str.pop_back();
'코딩' 카테고리의 다른 글
[Git 명령어] Git 설정하기 (0) | 2020.07.18 |
---|---|
[Git 명령어] 프로젝트 읽기 (0) | 2020.07.18 |
[프로그래머스 lv1] sql 최댓값 구하기 (0) | 2020.07.11 |
[프로그래머스 lv1] 문자열 내 문자의 개수 구하기 (0) | 2020.07.11 |
[프로그래머스 lv1] 버블정렬로 문자열 내림차순 (0) | 2020.07.07 |