任何人都可以向我解释为什么我得到一个".exe遇到问题并需要关闭"错误,它有时编译和工作当我摆弄char数组,但当它工作时我有时会得到奇怪的字符在结束时串.
#include <iostream>
using namespace std;
char* StrReverse3(char*);
char* StrReverse3(char* str)
{
char *p;
int length=0,start=0,end=0;
length=strlen(str);
for(start=0,end=length-1;end>= 0,start<=length-1;end--,start++)
{
p[start]=str[end];
}
return p;
}
int main()
{
char str[100]="Saw my reflection in snow covered hills";
StrReverse3(str);
cin.get();
return 0;
}
Run Code Online (Sandbox Code Playgroud)
你没有初始化p.这是你正在写的未初始化的指针.
既然你是用C++编写的,而不是C语言,我建议使用std::string和std::reverse:
#include <string>
#include <algorithm>
#include <iostream>
int main()
{
std::string str = "Saw my reflection in snow covered hills";
std::reverse(str.begin(), str.end());
std::cout << str;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
输出:
sllih derevoc wons ni noitcelfer ym waS
看到它在ideone上在线工作