программа, изменяющая строку Upper char на Lower get error error - PullRequest
0 голосов
/ 20 марта 2012

Я всегда получаю информацию об ошибке при отладке, которая выглядит как «Необработанное исключение в 0x004113ea в Utou.exe: 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;
}

1 Ответ

3 голосов
/ 20 марта 2012

Проще говоря, вы пытаетесь изменить литерал, который дает вам нарушение прав доступа.

char *a="AbcdfrDFD";

Вместо этого попробуйте ..

char a[]="AbcdfrDFD";
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...