

int main() {
char* words1[5] = {"my", "favorite", "color", "is", "violet"};
int words_len1 = 5;
char* ret1 = solution(words1, words_len1);
printf("solution 함수의 반환 값은 %s 입니다.\n", ret1);
char* words2[3] = {"yes", "i", "am"};
int words_len2 = 3;
char* ret2 = solution(words2, words_len2);
printf("solution 함수의 반환 값은 %s 입니다.\n", ret2);
}
#include <stdio.h>
#include <stdbool.h>
#include <stdlib.h>
//include문 추가 가능
char* solution(char* words[], int words_len) {
char* answer = "";
//빈칸
return answer;
}
char* solution(char* words[], int words_len) {
char* answer = "";
answer = (char*)malloc(sizeof(char)* words_len); //words_len만큼 answer에 동적할당
for(int i = 0; i < words_len; i++) { //words_len만큼 반복
answer[i] = 0; //answer의 0번째부터 10번째까지 0으로 초기화
}
for (int i = 0; i < words_len; i++) { //words_len만큼 반복
if (strlen(words[i]) >= 5) { //strlen(길이 구하는 함수)로 words[i]번째의 단어가 개수가 5개 이상인지 판단
strcat(answer, words[i]); //5개 이상이라면 strcat(문자열 합치는 함수)로 answer에 words[i]번째 문자열 합침
}
}
if(strlen(answer) == 0) { //만약 answer의 문자열 개수가 0이라면
answer = "empty"; //answer는 empyl!
}
return answer;
}
if(strlen(answer) == 0) {
answer = "empty";
}
먼저, answer 전체를 0으로 초기화했기 때문이고
for(int i = 0; i < words_len; i++) { answer[i] = 0; }
만약 words[i]번째의 길이가 5 이상이라면 answer에 words[i]번째를 합했다.
그러나 words의 길이가 조건문에 만족되지 못했을 때엔 answer와 합해지지 못한다.
그러면 answer는 자연히 0으로 남게 된다.
for (int i = 0; i < words_len; i++) { if (strlen(words[i]) >= 5) { strcat(answer, words[i]);
#include <stdio.h>
#include <stdbool.h>
#include <stdlib.h>
#include <string.h>
char* solution(char* words[], int words_len) {
char* answer = "";
answer = (char*)malloc(sizeof(char)* words_len);
for(int i = 0; i < words_len; i++) {
answer[i] = 0;
}
for (int i = 0; i < words_len; i++) {
if (strlen(words[i]) >= 5) {
strcat(answer, words[i]);
}
}
if(strlen(answer) == 0) {
answer = "empty";
}
return answer;
}
int main() {
char* words1[5] = {"my", "favorite", "color", "is", "violet"};
int words_len1 = 5;
char* ret1 = solution(words1, words_len1);
printf("solution 함수의 반환 값은 %s 입니다.\n", ret1);
char* words2[3] = {"yes", "i", "am"};
int words_len2 = 3;
char* ret2 = solution(words2, words_len2);
printf("solution 함수의 반환 값은 %s 입니다.\n", ret2);
}
