프로그래밍 언어/C++

[C] 문자열에서 공백을 제거하는 함수

ShovelingLife 2023. 9. 5. 11:31

문자열 중앙에 있는 공백도 제거하는 함수가 필요해서 만들었다.

아래의 DeleteSpace함수는 인수로 받는 문자열에서 문자열에서 앞, 뒤, 가운데에 있는 모든 공백을 제거해서 제거된 문자열을 반환하는 함수다.

 

사용법:

char *str = DeleteSpace("공백이 있는 문자열");

char str[] = DeleteSpace("공백이 있는 문자열");

#include <stdio.h>
#include <string.h>

char* DeleteSpace(char s[])
{
    char* str = (char*)malloc(sizeof(s));
    int i, k = 0;

    for (i = 0; i < strlen(s); i++)
        if (s[i] != ' ') str[k++] = s[i];

    str[k] = '\0';
    return str;
}

int main(void)
{
    char* s[] = {
       "    ABC     DEF     GH     ",
       "가   나   다   라마   "
    };

    printf("%s\n", DeleteSpace(s[0]));
    printf("%s\n", DeleteSpace(s[1]));
    printf("%s\n", DeleteSpace("    ABC     DEF    "));

    return 0;
}

 

// 다음 코드는 문자열에서 특정 문자를 삭제하는 프로그램이다

#include <stdio.h>
#include <string.h>

char* DeleteChar(char s[], char ch)
{
	char* str = (char*)malloc(sizeof(s));
	int i, k = 0;
	for (i = 0; i < strlen(s); i++)
		if (s[i] != ch) str[k++] = s[i];

	str[k] = '\0';
	return str;
}

int main(void)
{
	char s[] = "ABCDEFGH";

	printf("%s\n", DeleteChar(s, 'E')); // 문자열 s에서 'E' 문자를 삭제한다.

	return 0;
}

 

(C언어) 문자열에서 공백을 제거하는 함수 : 네이버 블로그 (naver.com)