const char *str = "ABCDEFGHIJKLMN";
int len;
len = strlen(str);
char *array = new char[len];for(int i=0; i<len; i++)
{
array[i]++;
}AfxMessageBox(array);
delete [] array;// 结果不是"BCDEFGHIJKLMNO"而是一些乱码字符,这是为什么?
// 怎样进才能达到我预料的效果呢?谢谢!
int len;
len = strlen(str);
char *array = new char[len];for(int i=0; i<len; i++)
{
array[i]++;
}AfxMessageBox(array);
delete [] array;// 结果不是"BCDEFGHIJKLMNO"而是一些乱码字符,这是为什么?
// 怎样进才能达到我预料的效果呢?谢谢!
解决方案 »
- IWebBrowser2 navigate同步问题
- AfxGetMainWnd()->GetDlgItem()是什么意思?
- 学数字图像处理,想听听过来人的建议。
- 关于VC++60 Release的一个问题,请教高手
- 如何设置绘制曲线的颜色啊?还有限制区域显示波形图?
- 请问各位大侠,为什么Link时报错没找到MessageMap定义体
- 在类成员中定义变量过多会有有什么问题嘛?
- open inventor屏幕坐标转换三维坐标,愿意帮忙并解决问题的小弟RMB酬谢了。
- 50分!!!!问哪有spy++的中文教程?或者关于消息哪本书写的比较详细?多谢了
- connect和accept数量不对等的问题
- 请教关于cad的dxf实体的数据存储(再现等)请大家帮忙
- 有一程序运行时间长了以后,容易产生好多问题,比如程序界面变白(原来位置是绿色),出现乱码,程序崩溃,系统死机等等,这是怎么回事?
-->
char *array = new char[len + 1];
{
array[i] = str[i]++;
}
memset(array,0,len + 1); for(int i=0; i<len; i++)
{
array[i] = *(str+i);
}
有问题啊,这个数组里存的并不是"ABCDEFGHIJKLMN",而是没有初始化的一堆莫明其妙的东西,加了之后也是乱码
其次你申请的内存要初始化
int len;
len = strlen(str);
char *array = new char[len+1];
memset(array,0,len + 1); for(int i=0; i<len; i++)
{
array[i] = *(str+i) + 1 ;
} AfxMessageBox(array);
delete [] array;
int len;
len = strlen(str);
char *array = new char[len];
for(int i=0; i<len; i++)
{ array[i] = str[i+1];
} AfxMessageBox(array);
delete [] array;