method1//
//难度等级:*
//passed the debugging
//int main()
//{
// char s[100]={'\0'};
// printf("Pls input a string:\n");
// scanf("%s",&s);
// int len=strlen(s);
// while(i<len)
// s1[i]=s[len-1-i];
// printf("%s',s1);
//}
//method1///
//难度等级:*
//passed the debugging
//void inverse(char * s)
//{
// int n=strlen(s)-1;
// int i=0;
// while(i<=n/2)
// {
// char temp;
// temp=s[i];
// s[i]=s[strlen(s)-1-i];
// s[strlen(s)-1-i]=temp;
// i++;
// }
//}
//int main()
//{
// char s[100]={'\0'};
// printf("Pls input a string:\n");
// scanf("%s",&s);
// inverse(s);
// printf("%s\n",s);
// return 0;
//}
//method2//
//有些讨巧,只是显示的时候递归,实际上字符串s并未改变 难度等级:**
//passed the debugging
//void inverse(char *s)
//{
// if(*s=='\0')
// return;
// inverse(s+1);
// printf("%c",*s);
//}
//int main()
//{
// char s[100]={'\0'};//初始化字符串数组!定义要加{}
// printf("Pls input a string:\n");
// scanf("%s",&s);//取地址符号,如果是指针 就不用加取地址符号了
// inverse(s);
// printf("\n%s\n",s);
//}
//method3//
//递归,将字符串s改变成逆序 难度等级:***
void inverse(char* s, int len)
{
if(len<=1)
{
return;
}
char temp;
temp=s[0];
s[0]=s[len-1];
s[len-1]=temp;
inverse(++s,len-2);
}
int main()
{
//char s[100]={'\0'};
printf("Pls input a string:\n");
//scanf("%s",&s);
char s[100]="asbd";
inverse(s,4);
printf("\n%s\n",s);
}