读书人

大家来帮小弟我看看这段程序的有关问题

发布时间: 2012-04-14 17:14:21 作者: rapoo

大家来帮我看看这段程序的问题

#include <iostream>
#include <iomanip>
using namespace std;
const int Max = 200;
void strReverse(char* str,char *strRes)
{
char *stack[Max];
char *tem;
int index = 0;
int m = 0;

for(int i = 0;i <=strlen(str);i++)
{
if(str[i] == ' ' || i == 0)
{

tem = new char[i - index + 1];
strncpy(tem,str+index,i-index);
tem[i-index +1] = '\0 ';
index = i;
stack[m] = tem;
m++;
}


}
for(int j = m;j> 0;j--)
{

strcat(strRes,stack[j]);
}


}
int main()
{

char *str = "I am a student ";
char ret[50];
strReverse(str,ret);

system( "pause ");
return 0;
}

[解决办法]
char *str = "I am a student ";

永远不要写这样的句子
因为str指向的是常量字符串, 常量字符串是不允许修改的

解决方法之一是:
char str[] = "I am a student ";

读书人网 >C++

热点推荐