연진이가 짠거.
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
// 문자열 좌우의 개행문자나 공백등을 삭제하는 함수
// 추가적으로 const 문자열을 받아 공간을 확보하여 복사를 함으로
// 이 함수를 실행할 경우 새로운 문자열 공간을 확보하는 기능을 겸함
//// 즉 새로운 문자열을 받을 경우 처음에 실행 해주는 것을 권함
char *trim(const char *str)
{
int length = 0;
char *temp = NULL;
if (str == NULL) return NULL;
length = strlen(str);
temp = (char *)malloc((length + 1) * sizeof(char));
strcpy(temp, str);
temp = trim_right(temp);
temp = trim_left(temp);
return temp;
}
// 문자열 오른쪽의 개행문자나 공백등을 삭제하는 함수
char *trim_left(char *str)
{
char *char_ptr = str;
char_ptr += strlen(char_ptr) - 1;
while(1)
{
if (*char_ptr == ' ' || *char_ptr == '\t' || *char_ptr == '\n') char_ptr--;
else break;
}
*(char_ptr + 1) = (char)NULL;
return str;
}
// 문자열 왼쪽의 개행문자나 공백등을 삭제하는 함수
char *trim_right(char *str)
{
char *char_ptr = str;
int length = 0;
while(1)
{
if (*char_ptr == ' ' || *char_ptr == '\t' || *char_ptr == '\n') char_ptr++;
else break;
}
length = strlen(char_ptr);
strcpy(str, char_ptr);
*(str + length) = (char)NULL;
return str;
}