사용자가 입력한 문자열의 역문자열(palindrome)을 만드는 프로그램을
순환(recursion)을 이용하여 작성하시오.
#include <stdio.h>
#include <string.h>
void reverse_string(char *str, int s, int e)
{
if(e-s<=1){
return;
}
else{
char temp = str[s];
str[s] = str[e];
str[e] = temp;
reverse_string(str,s+1,e-1);
}
}
int main()
{
char str[100];
printf("Enter any string:");
scanf("%s", str);
reverse_string(str, 0, strlen(str) - 1);
printf("\nReversed String is: %s", str);
return 0;
}
위 문제를 순환 대신 반복(iteration)을 이용하여 작성해 보시오.
#include <stdio.h>
#include <string.h>
void reverse_string(char *str, int s, int e)
{
char temp;
while(e-s<=1){
temp = str[s];
str[s] = str[e];
str[e] = temp;
s+=1; e-=1;
}
}
int main()
{
char str[100];
printf("Enter any string:");
scanf("%s", str);
reverse_string(str, 0, strlen(str) - 1);
printf("\nReversed String is: %s", str);
return 0;
}
if(end < 0)
return;
else{
printf("%c",str[end]);
print_reverse(str,end-1);
}
후위 증감에서 오류 뜰 수 있어서 그냥 end-1 하는 게 나을 수 있음.
'-' 카테고리의 다른 글
2차원 포인터 (0) | 2022.05.10 |
---|---|
[C언어] 조합 (0) | 2022.04.02 |
7일간 진행했던 교내 해커톤 후기 (0) | 2022.03.05 |
document 객체 (0) | 2021.12.12 |
파일 입출력 (0) | 2021.11.30 |
댓글