You could convert the letters you are using for comparison to the same case on line 7 with something like tolower().
As a tangentially related recommendation, I'd make a struct to hold your county name and tax rate pairs instead of trying to manage parallel arrays. It makes managing them much easier by keeping them together.
You have so much leftover partially implemented stuff in your code that I decided not to try to reuse all your names. For instance, you have a struct named County and an object of that type also named County. That is a name collision and won't compile. Also you have an array of strings named county and a field within your struct named county. That will compile, but trying to differentiate which one I'm talking about would be miserable. I picked a new name countyList so that you would know what I'm talking about. You can name your array anything you want (as long as it compiles). Just be careful reusing names to mean different things. Sometimes it makes sense, but sometimes it just confuses things. For instance, I would not declare an array of County objects with the name "county" when the County struct contains a field also named "county".
Notice that you tried to create a single County element named County while I created an array of County elements called countyList. Remember, you are trying to replace 2 parallel arrays with an array of structures. Declaring a single struct to replace the 2 arrays won't work. It needs to be an array of structs like I show in my post.