gpt4 book ai didi

c++ - 将 State 的输入转换为缩写

转载 作者:行者123 更新时间:2023-11-28 00:39:31 24 4
gpt4 key购买 nike

我正在做一个个人 C++ 项目,其中一个功能是保存联系信息。当涉及到地址时,我希望状态以其缩写格式保存。

我正在研究一种方法,该方法将接受州全名的字符串输入并返回 2 个字符州缩写的字符串值。话虽这么说,我一直在与一些 friend 集思广益,以寻找最好的方法。截至目前,我已经完成了以“A”开头的状态;但在我浏览其他 47 个州之前,我想通过问这个问题来扩大我的头脑 Storm 。是否有“更好”或更有效的方法来完成此任务?到目前为止,请看我的功能。

    std::string Address::formatStateInput(std::string stateInput){
char firstLetter = toupper(stateInput.at(0)); //makes first character capital for easy checking
if(firstLetter == 'A'){
char letterToCheck = toupper(stateInput.at(3)); //makes fourth character capital for easy checking
//Alabama
if (letterToCheck == 'B'){
return "AL";
}
//Alaska
else if (letterToCheck == 'S'){
return "AK";
}
//Arizona
else if (letterToCheck == 'Z'){
return "AZ";
}
else{
return "NULL";
}
}
else{return "NULL";}
}

最佳答案

我会使用 std::map(或 std::unordered_map)。

std::map<std::string, std::string> abbrs;

abbrs["Alabama"] = "AL";
abbrs["Alaska"] = "AK";
abbrs["Arizona"] = "AZ";
// ...

然后要查找州的缩写,您可以执行以下操作:

auto pos = abbrs.find(user_input_state_name);
if (pos == abbrs.end())
error_invalid_state_name(user_input_state_name);
else
abbreviation = *pos;

请注意,在典型情况下,您可能不想真正将所有州名称和缩写硬编码到您的源代码中。您可能希望在外部配置文件中包含名称和缩写。

关于c++ - 将 State 的输入转换为缩写,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19554243/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com