Algorithm 9 - Remove String Spaces
Q.
Description:
Simple, remove the spaces from the string, then return the resultant string.
For C, you must return a new dynamically allocated string.
A)
#include <stdlib.h>
char *no_space(const char *str_in)
{
char *ptr;
int i = 0, j = 0, len = 0;
while (str_in[i])
{
if (str_in[i] != ' ')
len++;
i++;
}
if (!(ptr = (char*)malloc(sizeof(char) * len + 1)))
return NULL;
i = 0;
while (str_in[i])
{
if (str_in[i] != ' ')
ptr[j++] = str_in[i];
i++;
}
ptr[len] = '\0';
return ptr;
}
another solution
char *no_space(char *s) {
char *res = strdup(s), *q = res;
for (; *s; s++)
if (*s != ' ')
*q++ = *s;
return *q = 0, res;
} -> strdup() function : 문자열 동적할당해주고 카피해주는데 이렇게 하면 직접 쓸 메모리공간보다 더 할당해주기 때문에 낭비될 수 있음.
Author And Source
이 문제에 관하여(Algorithm 9 - Remove String Spaces), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://velog.io/@ad-astra/Algorithm-9-Remove-String-Spaces
저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
#include <stdlib.h>
char *no_space(const char *str_in)
{
char *ptr;
int i = 0, j = 0, len = 0;
while (str_in[i])
{
if (str_in[i] != ' ')
len++;
i++;
}
if (!(ptr = (char*)malloc(sizeof(char) * len + 1)))
return NULL;
i = 0;
while (str_in[i])
{
if (str_in[i] != ' ')
ptr[j++] = str_in[i];
i++;
}
ptr[len] = '\0';
return ptr;
}
another solution
char *no_space(char *s) {
char *res = strdup(s), *q = res;
for (; *s; s++)
if (*s != ' ')
*q++ = *s;
return *q = 0, res;
} -> strdup() function : 문자열 동적할당해주고 카피해주는데 이렇게 하면 직접 쓸 메모리공간보다 더 할당해주기 때문에 낭비될 수 있음.
Author And Source
이 문제에 관하여(Algorithm 9 - Remove String Spaces), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@ad-astra/Algorithm-9-Remove-String-Spaces저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)