读书人

关于将一个字符串中的小写字母改成大写

发布时间: 2012-09-23 10:28:10 作者: rapoo

关于将一个字符串中的小写字母改为大写字母
源码:

C/C++ code
#include <stdio.h>void big_lower(char *ops);int main(void){    char *src =  "abcdefghIJKlmnopq";    big_lower(src);    puts(src);    return 0;}void big_lower(char *ops){    while(*ops)    {        if (*ops >= 'a' && *ops <= 'z')        {            *ops -= 32;        }        ops++;    }}


错误地方:
*ops -= 32;

我觉得由小写字母改为大写字母,只要将其ASCII码减小32即可,为什么有以下这种错误:
把一个字符串中的字母由小写变为大写.exe 中的 0x00a0148a 处有未经处理的异常: 0xC0000005: 写入位置 0x00a0573c 时发生访问冲突(*ops -= 32;)

[解决办法]
char *src = "abcdefghIJKlmnopq";是常量指针,里面的数据不能修改
char src[] = "abcdefghIJKlmnopq";应该就可以了

读书人网 >C++

热点推荐