char *a=str;
char *b=str+strlen(str);
这两句的语法错了,重复声明了两个指针的类型,str的指针顺序你给改过来了,你是想通过这个顺序改变字符串的输出顺序,但是a,b在这里是局部变量,没有改变str的顺序,甚至最后str都没有输出结果,建议把a,b改为全局变量后再继续你的思路做
char *b=str+strlen(str);
这句错了,应该是
char *b=str+strlen(str)-1;
str+strlen(str);指向的是字符串最后一个字符的下一个位置,也就是'\0'的位置
例如字符串str = "abc",strlen(str)=3
'a' 'b' 'c' '\0'
str +1 +2 +3
基础