我对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
答案 0 :(得分:4)
printf("%c", str[i]);
您之前打印过ascii值。使用%c
说明符打印字符。
例如,您可以在ascii-chart
中看到该内容112 108 101 104
p l e h
或者更容易做到这一点
printf("%s",str);