Dev/c, c++
문자열 앞뒤 공백 지우기(수정)
2ssoosike
2008. 3. 26. 16:11
// 문자열 우측 공백문자 삭제 함수
char* rtrim(char* s)
{
char t[MAX_STR_LEN];
char* end;
strcpy(t, s); // Visual C 2003 이하에서는
//strcpy_s(t, s); // 이것은 Visual C 2005용
end = t + strlen(t) - 1;
while (end != t && isspace(*end))
end--;
*(end + 1) = '\0';
s = t;
return s;
}
// 문자열 좌측 공백문자 삭제 함수
char* ltrim(char* s)
{
char* begin;
begin = s;
while (*begin != '\0')
{
if (isspace(*begin))
begin++;
else
{
s = begin;
break;
}
}
return s;
}
// 문자열 앞뒤 공백 모두 삭제 함수
char* trim(char *s)
{
return rtrim(ltrim(s));
}
// 공백으로만 되어 있는 문자열에서 모든 공백 삭제
// 이렇게 해야 strlen으로 찍었을 때 길이가 0으로 나옴
char* atrim(char* s)
{
char t[MAX_STR_LEN];
char* end;
strcpy(t, s); // Visual C 2003 이하에서는
//strcpy_s(t, s); // 이것은 Visual C 2005용
end = t + strlen(t) - 1;
while (end != t-1 && isspace(*end))
end--;
*(end + 1) = '\0';
s = t;
return s;
}
char* rtrim(char* s)
{
char t[MAX_STR_LEN];
char* end;
strcpy(t, s); // Visual C 2003 이하에서는
//strcpy_s(t, s); // 이것은 Visual C 2005용
end = t + strlen(t) - 1;
while (end != t && isspace(*end))
end--;
*(end + 1) = '\0';
s = t;
return s;
}
// 문자열 좌측 공백문자 삭제 함수
char* ltrim(char* s)
{
char* begin;
begin = s;
while (*begin != '\0')
{
if (isspace(*begin))
begin++;
else
{
s = begin;
break;
}
}
return s;
}
// 문자열 앞뒤 공백 모두 삭제 함수
char* trim(char *s)
{
return rtrim(ltrim(s));
}
// 공백으로만 되어 있는 문자열에서 모든 공백 삭제
// 이렇게 해야 strlen으로 찍었을 때 길이가 0으로 나옴
char* atrim(char* s)
{
char t[MAX_STR_LEN];
char* end;
strcpy(t, s); // Visual C 2003 이하에서는
//strcpy_s(t, s); // 이것은 Visual C 2005용
end = t + strlen(t) - 1;
while (end != t-1 && isspace(*end))
end--;
*(end + 1) = '\0';
s = t;
return s;
}