En hashmap är väl kanske lite overkill. Man kan ju istället använda bokstävernas ASCII-värden. T.ex. så har ju a till z värden 97 till 122, så om du bara vill hantera a till z så kan du köra
if(textin[i] > 'a' && textin[i] < 'z') // Se till att det verkligen är ett tecken mellan a till z.
{
int index = textin[i] - 97;
}
for att få ett index till din morse-tabell. En string är ju bara en abstraktion för en array av chars, och en char är ju bara ett heltal med storleken en byte. åäö ställer dock till det en del då de inte hör till ASCII, och är allmänt knepiga att hantera i C++ över huvud taget. Även om det ser ut som att åäö är ett tecken var så kommer de att stoppas in i strängen som två tecken tror jag, vilket du säkert ser om du skriver ut strängen.