char* reverse(char*);
main()
{
printf("\n%s", reverse("computer"));
}
char* reverse(char* p)
{
int l, i;
char t;
for (l = 0; *(p + l) != '\0'; l++)
;
for (i = 0; i < l / 2; i++)
{
t = *(p + i);
*(p + i) = *(p + l - 1 - i);
*(p + l - 1 - i) = t;
}
return (p);
}
未获得输出。输出显示流程返回了-1073741819(0xc0000005)。
答案 0 :(得分:0)
您应该使用char st[] = "computer"; reverse(st);
而不是reverse("computer");
,因为“计算机”是文字字符串。
以下code
可以工作:
#include <stdio.h>
char* reverse(char*);
int main() {
char st[] = "computer";
printf("%s\n", reverse(st));
return 0;
}
char* reverse(char* p) {
int l, i;
char t;
for (l = 0; *(p + l) != '\0'; l++)
;
for (i = 0; i < l / 2; i++) {
t = *(p + i);
*(p + i) = *(p + l - 1 - i);
*(p + l - 1 - i) = t;
}
return p;
}