调试时我总是收到错误信息,显示为“Utou.exe 中 0x004113ea 处未处理的异常:0xC0000005:访问冲突写入位置 0x00415835。”在行 "*s -= 32; " 谁能帮忙解决问题?
#include "stdafx.h"
#include <iostream>
using namespace std;
void ToUpperPtr(char* s)
{
//char *a;
//a=s;
while(*s != '\0')
{
if(*s >='a' && *s <='z')
*s -= 32;
s++; //
}
//printf("%s",a);
}
int _tmain(int argc, _TCHAR* argv[])
{
char *a="AbcdfrDFD";
ToUpperPtr(a);
//printf("%s",a);
int i;
scanf("%d",&i);
return 0;
}
最佳答案
简单来说,您正在尝试更改会导致访问冲突的文字。
char *a="AbcdfrDFD";
试试这个..
char a[]="AbcdfrDFD";
关于c++ - 将字符串 Upper char 更改为 Lower char 的程序出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9781188/