2017-12-08 10 views
0

C 프로그래밍에 익숙하지 않습니다. 문자열을 뒤집어 쓰고 싶은 함수가 있습니다. 내가 그 기능을 main으로 읽을 때, 그것은 정크를 출력한다.기능 및 포인터 상호 작용

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

    #define MAX_LEN 100 

    void reverse(char* str) 
    { 
     int i, j; 
     int temp; 
     int length; 
     length = strlen(str); 
     i= 0; 
     j=(length-1); 
     while (i<j){ 
      temp=str[i]; 
      str[i] = str[j]; 
      str[j]=temp; 
      i++; 
      j--; 
     } 
     printf("Your reversed string is: "); 
     for (i=0; i<length; i++){ 
      printf("%d", str[i]); 
     } 
     printf("\n"); 
    } 

int main() 
    { 
     char mystring[MAX_LEN+1]; 
     printf("Enter the string. \n"); 
     scanf("%s", mystring); 
     printf("%s", mystring); 
     printf("\n"); 
     reverse(mystring); 
    } 

출력은 다음과 같습니다 : 나는

내 코드입니다 .... 그것이 내가 포인터를 사용하고 방법에 문제가 있다고 생각

문자열을 입력합니다.
도움
도움
귀하의 반전 문자열 : 사전에 112,108,101,104

감사합니다!

답변

4

printf("%c", str[i]); 이전에 ascii 값을 인쇄했습니다. 문자를 인쇄하려면 %c 지정자를 사용하십시오.

예를 들어, ascii-chart

112 108 101 104 
p l e h 

에 심지어 더 쉽게이

printf("%s",str);

할 수 있었던 것을 알 수 있습니다