69,382
社区成员
发帖
与我相关
我的任务
分享
#include "stdafx.h"
#include <stdio.h>
#include <string.h>
#include<stdlib.h>
void reverse(char* str)
{
char temp, *p, *q; int i; /*temp定义成字符类型即可。*/
p = str;
q = p + strlen(str) - 1; /*减1就好,因为最后只有一个'\0',下表是从0开始。*/
for (i = 0; i< strlen(str) / 2; i++){
temp = *p;
*p = *q;
*q = temp;
p++; q--;
}
}
int _tmain(int argc, _TCHAR* argv[])
{
char str[] = "hello"; /*需要定义成数组,否则是字符串常量是不能修改的,所以调用reverse会导致段错误*/
printf("%s\n",str);
reverse(str);
printf("%s\n", str);
//system("pause");
return 0;
}
三处问题,详见以上代码