我正试着为一辆汽车换一个新车牌。我需要这三个字母大写。问题是我不能把new Plate数组的“capital”元素传递给new_Plate数组。程序编译,但答案是soometimes%^&#%@$,有些时候什么都没有。我知道我的指针有问题。

void Car::set(char *newBrand, char *newPlate)
{
    char new_Brand[80];
    char new_Plate[8];

    if(strlen(newPlate)==8)
    {
        for(int i=0;i<3;i++)
        {
            if(65<=(int)newPlate[i]<=90)
            {
                new_Plate[i]=newPlate[i]; // probably the problem
            }

            if(97<=(int)newPlate[i]<=122)
            {
                new_Plate[i]=(newPlate[i]+32); // probably the problem
            }

            cout<<new_Plate;
        }
    }
}

最佳答案

new_Plate字符串不包含零结束符。
此外,在C++中是无效的。你应该写些

'A'<=newPlate[i] && newPlate[i]<='Z')

08-15 22:38