我正试着为一辆汽车换一个新车牌。我需要这三个字母大写。问题是我不能把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')