我必须编写一个获取字符串然后将其反转的函数。我写了这段代码,它没有给我编译错误:
#include <stdio.h>
#include <string.h>
char *reverse(char *str);
int main(void){
char string[100];
printf("Insert the string to be inverted: ");
gets(string);
reverse(string);
printf("Inverted string is: %s\n", string);
}
char *reverse(char *str){
char h;
int i, j;
for(i=0, j=strlen(str); i<j; i++, j--){
h=str[i];
str[i]=str[j];
str[j]=h;
}
}
我遇到的唯一问题是,printf
显然不会打印反转的字符串。谁能帮我?
答案 0 :(得分:1)
反向字符串在位置0处具有终止符method_name param, other_method other_param
。
答案 1 :(得分:0)
strlen(str)
为您提供字符串的大小,即终止空字符的索引。
您不想交换空终结符,因此strlen(str) - 1
是您想要交换的最后一个字符的索引。
因此,j
应从strlen(str) - 1
开始。