Algorithm 6 - String repeat

Beast from the east·2021년 10월 6일
0

Algorithm

목록 보기
6/27

Q.

Write a function called repeatStr which repeats the given string string exactly n times.

repeatStr(6, "I") // "IIIIII"
repeatStr(5, "Hello") // "HelloHelloHelloHelloHello"

A)

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

char *repeat_str(size_t count, const char *src) 
{
  char *ptr;
  if (!(ptr = (char*)malloc(sizeof(char) * strlen(src) * count + 1)))
    return NULL;
  *ptr = '\0';
  for (size_t i = 0; i < count; i++)
    strcat(ptr, src);
  return ptr;
}

another solution
#include <string.h>
#include <stdlib.h>

char *repeat_str(size_t count, const char *src) {
  char *result = calloc(((count * strlen(src)) + 1), sizeof(char));
  while (count--)
    strcat(result, src);
  return result;
} -> calloc 을 사용하면 위의 malloc을 사용할 때 처럼 0으로 초기화시켜주지 않아도 자동으로 배열의 원소들을 0으로 초기화시켜준다.
profile
Hello, Rabbit

0개의 댓글