函数和指针交互

时间:2017-12-08 17:59:13

标签: c string pointers

我对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);
    }

,输出为:

  

输入字符串   帮助
  帮助
  你的反向字符串是:112108101104

1 个答案:

答案 0 :(得分:4)

printf("%c", str[i]);您之前打印过ascii值。使用%c说明符打印字符。

例如,您可以在ascii-chart

中看到该内容
112 108 101 104
 p   l   e    h

或者更容易做到这一点

printf("%s",str);