본문 바로가기

System Programmings/C

[C] 문자열 역순으로 출력하기 (한/영 재귀함수 포함)

반응형
#include <stdio.h>

int main(void)
{
	char *a="abcdefg";
	int i;

	for(i=strlen(a)-1; i>=0; i--)  //영문일 경우 for(i=strlen(a)-2; i>=0; i-=2)
		printf("%c", a[i]);              // printf("%c%c", a[i], a[+1]);
	return 0;
}
한글, 영문의 재귀함수를 이용한 역순 출력
#include <stdio.h>

void reverseA(char *s);
void reverseB(char *s);
int main(void)
{
	char *a="abcdefg";
	char *b="감자";
	reverseA(a);
	printf("\n");
	reverseB(b);

	return 0;
}

void reverseA(char *s) // 영문일 경우엔 1바이트씩 재귀함수로
{
	char c=*s;
	if(c!='\0')
		reverseA(++s);
	printf("%c", c);
}

void reverseB(char *s)
{
	char c=*s;
	if(c!='\0')
	{
		s+=2;
		reverseB(s);
		printf("%c%c", *(s-2), *(s-1));
	}
}
반응형