Because Croatian and English have different alphabets, and unlike English all Croatian letters are phonetic. Croatian is a latinized version of Cyrillic (if you can read Cyrillic, Serbian, which is the same language in the 'original' alphabet, is much easier to comprehend; I'm a a Russian and Bulgarian speaker to get by and can speak enough Bosnian-Serbian-Croatian and Croatian trips me up because of false similarities to English letters while Serbian is easy to get; I have to consciously read Croatian into Cyrillic in my head).
The two different letters are mostly an artifact, the č was at one point pronounced "harder" than the ć, but nowadays they're pretty much the same. To make it even more confusing, a c in Croatian is always pronounced like "ts" (Cyrillic letter Ц). There's no hard c, that's what the letter k is for, and a soft c is the letter s.
Though it sounds confusing, it's actually much less confusing than English in the grant scheme of things. Think about how c, k, and ck can all take on the same pronunciation, but c can also take on the same pronunciation as letter s (which in turn also does double duty with sh), or the sound ch with an h, but to further complicate matters our "ch" can also be a k as in Christmas if the word is of Greek origin, as in modern English the k sound has completely replaced the guttural "kh" sound of the Greek chi, or x, whereas most Slavic languages preserve it in the letter x.
English even has a sound that doesn't exist in Slavic languages (th; hence why Russians, even fluent English speakers, say things like tis or tem or boat instead of this or them or both). You internalize these things as a child as a native speaker, but it explains why English is so difficult to learn.