我必须编写一个函数,它获取一个字符串然后将其反转。我写了这个代码,这给了我没有编译错误:printf函数不会打印反转字符串
#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
将不打印逆转字符串。谁能帮我?
'str [strlen(str)]'是什么? –
切勿使用'gets'功能。它本质上是不安全的(如果用户键入200个字符,或者你的猫坐在键盘上?),并且它已从2011年标准的语言中删除。 'fgets'使用起来有点麻烦,但它可以安全地使用。 –