字符串处理:实现反转功能。 #include <stdio.h> #include <string.h> /***************************************************** **功能:给一个字符串,实现反转(倒序) **参数:char *s:要处理的字符串首地址 ** int n: 字符串总长度 **返回值:倒序后的字符串首地址 ******************************************************/ char *reverse(char *s, int n) { char *s1, *s2, *s3; char t; s3 = s1 = s; s2 = s+n-1; if(s == NULL) { perror("error"); return NULL; } while(s1 < s2) { t = *s1; *s1 = *s2; *s2 = t; s1++; s2--; } return s3; } main(void) { char str[] = "ABCDdfds"; char *s2; s2 = reverse(str, strlen(str)); printf("%s/n",str); puts(s2); } 需要注意的是:在main()函数中,如果字符串用指针的形式来表示的话,会出现段错误。 因为指针所指的空间里,存放的是字符常量,常量不可操作。 如: main(void) { char *str = "ABCDdfds"; char *s2; s2 = reverse(str, strlen(str)); printf("%s/n",str); puts(s2); }