NLP Learner in Switzerland

[C] Reverse String ::: 문자열을 입력받아 거꾸로 출력하기 본문

Algorithm in C/Exercise

[C] Reverse String ::: 문자열을 입력받아 거꾸로 출력하기

초코빵 2021. 3. 29. 04:53
728x90
반응형

 

 


까다로운 부분 알아가기


[1] 최대 1000자로 제한한다

const qualifier를 사용한다.

 

[2] string의 글자수를 세어야 reverse된 string에 인덱스를 맞춰 넣을 수 있다.

string의 termination character가 '\0'이라고 했으므로, '\0'를 만날 때까지 계속 읽어서 count를 늘려준다.

 

[3] reverse된 string의 끝에 termination character를 넣어야 한다

string의 termination character는 '\0'이다.

 

[4] 예시처럼 공백이 포함된 string도 정상처리 되어야 한다.

▶ %[^\n]s를 사용한다. [^\n]은 \n(줄바꿈)을 만나기 전까지의 내용을 모두 input으로 받는다는 의미이다.

 

[5] string을 input으로 받을 수 있도록 한다

 string의 경우 data type은 char이며, format specifier는 %s를 사용한다.

 

#include <stdio.h>

const int MAX_LENGTH = 1001; ------------ [1]

void reverse(char s[]){
    int i = 0;
    while(s[i] != '\0'){
    	i++;              --------------- [2]
    }
    int len = i;
    char reversed[len];
    int j = 0;
    while(s[j] != '\0'){
    	reversed[j] = s[len-j-1];
    	j++;
    }
    reversed[len] = '\0'; --------------- [3]
    printf("Result string: %s", reversed);
}
    
int main(){
    char s[MAX_LENGTH];
    printf("Please enter a string to reverse: ");
    scanf("%[^\n]s",s); ----------------- [4][5]
    reverse(s);
    return 0;
}

 


출력결과


 

Comments