我想用 C 语言反转一个字符串。我有点新,所以我很想得到一些帮助和解释。为什么我的解决方案不起作用?
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <string.h>
char *rev(char *str) {
char *q = str;
int len = strlen(str);
char *p = (char*)calloc(len+1, sizeof(char));
int j=0;
if (NULL == str || len == 1) return str;
for (j = len+1 ; j > 0 ; j-- ) {
p[j]=*q;
q++;
}
return p;
}
int main(int argc, char **argv){
char *t = argv[1];
char *p ;
printf("%s",t);
p=rev(t);
printf("%s",p);
getchar();
return 0;
}
它不工作:(