在 C 中创建一种查找表
creating a kind of look-up table in c
这是我的代码:
int month()
{
//this array contains all of the months names
char months[24] = {'JANUARY', 'FEBURARY', 'MARCH ', 'APRIL', 'MAY', 'JUNE', 'JULY',
'AUGUST', 'SEPTEMBER', 'OCTOBER', 'NOVEMBER', 'DECEMBER', 'JAN',
'FEB', 'MAR', 'APR', 'MAY', 'JUN', 'JUL', 'AUG', 'SEPT', 'OCT', 'NOV', 'DEC'};
char month_name[10]; // a null terminating char array for your month of birth
cin >> month_name;
for(int j = 0; j <= 24; j++ )
{
if(month_name == months[j])
{
return month_name;
}
else
{
cout << "n" << endl;
show_error();
cout << "n" << endl;
bFlag = false;
return bFlag;
}
}
}
每当我尝试运行它时,我都会收到消息警告:隐式常量转换中溢出。这是什么意思?
首先,
您的月份名称应该在引号"
之间,并使其成为一个char *
数组
字符* 月份[] = {"一月", "二月",..."十二月"}
然后,如果返回值为 0
,则不使用==
使用 _stricmp
来比较字符串,则具有匹配项。
_stricmp
中的i
表示忽略大小写(因此通过对小写字母进行比较,"一月"和"一月"被认为是相等的),否则使用strcmp
_stricmp
记录在这里(stricmp
在Visual Studio中已弃用),但请检查mux的评论,我不熟悉该功能,但他可能是对的!
正如 Nik B. 指出的那样,您应该始终返回一个 int。当您找到月份时,返回其索引(j
)。看到您现在如何为月份添加短名称,您可以使用
return j % 12;
相关文章:
- 有符号的int和int-有没有一种方法可以在C++中区分它们
- 有一个打印语句的函数是一种糟糕的编程实践吗
- 有没有一种方法可以创建一个带有哈希表的数据库,该哈希表具有恒定时间查找功能
- 有没有一种方法可以在编译时获得作用域类名
- 对于C++中使用智能指针的指针算术限制,有没有一种变通方法
- 一种在C++中读取TXT配置文件的简单方法
- 有没有一种方法可以测量c++程序的运行时内存使用情况
- 有没有一种方法可以使用placement new将堆叠对象分配给分配的内存
- 在调用接收数组的方法时,模板化数组大小是不是一种糟糕的做法
- 有没有一种方法可以通过"typedef"为重新定义的基本类型定义特征和强制转换运算符
- 一种有效的数据结构,用于按 ID 访问和查找加权随机项
- 需要帮助从12个字节生成新的24字节RGB查找阵列,或者是一种更好的编码方法
- 调试一种方法,用于使用C 中的OpenCV从视频中查找帧的平均帧
- 是否有一种算法可以查找字符串中任何指定字符的第一次出现
- 使用 boost::asio 是一种便携式方法来查找可用端口号
- 在 C 中创建一种查找表
- 查找表是哈希表的一种形式吗
- 找到一种正确"(快速而准确)的方式来查找检查 2D 游戏碰撞的内容。C++
- 是否有一种STL算法可以根据一定的公差来查找容器中是否存在元素
- 一种使用多线程在巨大树形结构中查找文件的方法