-

[자료구조] 과제 1주차

Patti Smith 2022. 9. 7.
사용자가 입력한 문자열의 역문자열(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

댓글