Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >检查它是一个字符还是一个整数

检查它是一个字符还是一个整数
EN

Stack Overflow用户
提问于 2011-03-01 13:18:38
回答 3查看 416关注 0票数 0

这是一个整数数组:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
int values[] = { 75, '*', 5,'-' };

for(i=0 ; i<size ; i++){
    // Here
}

如何检查values[i]是整数还是操作??

也许这个值等于一个操作的Ascii,在这种情况下该如何处理呢?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-03-01 13:31:48

这是一条危险的道路。示例中的数组将(在编译期间)转换为:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
int values[] = {75, 42, 5, 45};

所以当你看到数字42..。那是什么?是'*'字符,还是指数字42

您也不能依赖类型转换,因为所有的值都将转换为int,因为它们存储在整数数组中。您最好的选择是创建一个同时保存类型和值的结构,如下所示:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
typedef struct
{
    int type;  //0 for int, 1 for operator, and so forth.
    int value; //holds either a character code or an integer value
    //you could use a union here, if you felt it would make things cleaner...
} Token;

然后检查令牌是什么类型,只需查看token.type即可。

希望这能有所帮助!

PS:作弊的答案是使用动态类型的语言。你的工作少了很多,但速度慢了,我不知道这是否是你的选择。

票数 4
EN

Stack Overflow用户

发布于 2011-03-01 13:22:29

就编译器而言,常量42'*'是相同的。在编译的对象代码中,它们都表示为整数42。

如果需要区分整数和字符,可以使用布尔标志或枚举表示值的类型,或者将整数和字符保持在单独的数组中。

注意,在C++中,但在C中,有一个细微的区别:42有类型int,而'*'有类型char,所以可以使用重载函数或模板来区分这一事实。

票数 8
EN

Stack Overflow用户

发布于 2011-03-01 13:43:34

数组元素不能是简单整数。试一试:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
enum ElementType {INTEGER, OPERATION};
struct ArrayElement {
    enum ElementType etype;
    int evalue;
};
struct ArrayElement values[] = {
    {INTEGER, 75}, {OPERATION, '*'}, {INTEGER, 5}, {OPERATION, '-'}
};

for (i = 0; i < sizeof values / sizeof *values; i++) {
    /* Here */
    switch (values[i].etype) {
        default: printf("unrecognized type. value is %d.\n", values[i].value);
                 break;
        case INTEGER: printf("INTEGER with value %d.\n", values[i].value);
                      break;
        case OPERATION: printf("OPERATION with value '%c'.\n", values[i].value);
                        break;
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5160468

复制
相关文章
写一个程序检查一个整数是2的幂
// 写一个程序检查一个整数是2的幂? // 在这里,我正在编写一个小算法来检查2的幂。如果一个数是2的幂,则函数返回1。 int CheckPowerOftwo (unsigned int x) { return ((x != 0) && !(x & (x - 1))); }
用户4645519
2020/09/07
6020
写一个程序检查一个整数是2的幂?
回答: 在这里,我正在编写一个小算法来检查2的幂。如果一个数是2的幂,则函数返回1。 int CheckPowerOftwo (unsigned int x) { return ((x != 0) && (!(x & (x - 1)))); } 要么 int CheckPowerOftwo (unsigned int x) { return (x && (!(x & (x - 1))));
用户4645519
2020/09/08
4850
2021-11-06:3的幂。给定一个整数,写一个函数来判断它是
2021-11-06:3的幂。给定一个整数,写一个函数来判断它是否是 3 的幂次方。如果是,返回 true ;否则,返回 false 。整数 n 是 3 的幂次方需满足:存在整数 x 使得 n == 3**x。力扣326。
福大大架构师每日一题
2021/11/06
3650
给定一个二叉树,检查它是否是镜像对称的。
判断二叉树是否镜像对称==>(左子树的右节点等于右子树的左节点)&&(右子树的右节点等于左子树的左节点)
小雨的分享社区
2022/10/26
5900
2023-05-02:如果一个正整数每一个数位都是 互不相同 的,我们称它是 特殊整数 。 给你一个正整数 n ,请你返回区间 [1, n] 之间特殊整数的数目
2023-05-02:如果一个正整数每一个数位都是 互不相同 的,我们称它是 特殊整数 。
福大大架构师每日一题
2023/05/02
2560
2023-05-02:如果一个正整数每一个数位都是 互不相同 的,我们称它是 特殊整数 。 给你一个正整数 n ,请你返回区间 [1, n] 之间特殊整数的数目
leetcode 回文数_将一个整数转换为字符串
请你来实现一个 myAtoi(string s) 函数,使其能将字符串转换成一个 32 位有符号整数(类似 C/C++ 中的 atoi 函数)。
全栈程序员站长
2022/09/22
1K0
Python判断输入的字符串是否是整数还是小数
           不是的话说明是字母或者是小数,然后判断是否是小数,如果是小数的话返回1,
matinal
2023/10/13
4830
2021-10-05:对称二叉树。给定一个二叉树,检查它是
2021-10-05:对称二叉树。给定一个二叉树,检查它是否是镜像对称的。例如,二叉树 1,2,2,3,4,4,3 是对称的。力扣101。
福大大架构师每日一题
2021/10/05
1060
C语言 | 递归将一个整数n转换成字符串
例73:C语言用递归方法将一个整数n转换成字符串。例如,输入483,应输出字符串“483”,n的位数不确定i,可以是任意位数的整数。
小林C语言
2021/02/01
5.9K0
C语言 | 递归将一个整数n转换成字符串
[PHP] 算法-将一个字符串转换成一个整数的PHP实现
题目描述 将一个字符串转换成一个整数(实现Integer.valueOf(string)的功能,但是string不符合数字要求时返回0),要求不能使用字符串转换整数的库函数。 数值为0或者字符串不是一个合法的数值则返回0。 示例1 输入 +2147483647 1a33 输出 2147483647 0 思路: 1.处理负号 2.处理正号 3.字符串中包含非数字字符的直接返回0 4.'0'字符的ascii码是48 4.遍历字符串,从0位置开始扫描,当前数字字符ascii码减去
唯一Chat
2019/09/10
8570
如何在 Python 中检查一个字符是否为数字?
在编程中,我们经常需要检查一个字符是否为数字。这种判断对于数据验证、文本处理和输入验证等场景非常有用。Python 提供了多种方法来检查一个字符是否为数字。本文将详细介绍在 Python 中检查字符是否为数字的几种常用方法,并提供示例代码帮助你理解和应用这些方法。
网络技术联盟站
2023/06/01
8.8K0
2021-10-12:验证回文串。给定一个字符串,验证它是否
2021-10-12:验证回文串。给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。说明:本题中,我们将空字符串定义为有效的回文串 。输入: "A man, a plan, a canal: Panama"。输出: true。解释:"amanaplanacanalpanama" 是回文串。力扣125。
福大大架构师每日一题
2021/10/12
3020
脑洞:如何用一个整数来表示一个列表?
与 C、Rust 和 Go 不同,Python 默认的int 具有任意大小。[注1] 、[注2]
数据森麟
2021/01/25
5430
脑洞:如何用一个整数来表示一个列表?
这不是一个简单的花瓶,它是一个好玩的机器人
你是否曾设想过,家里有个像台灯和花盆之类的普通家用摆设,会突然焕发生机在家里四处走动玩耍。位于日本东京的设计工作室Flower Robotics揭示了一款叫做Patin的概念设备,它是一个可以通过特殊
机器人网
2018/04/20
7430
这不是一个简单的花瓶,它是一个好玩的机器人
C语言经典100例001-将一个数字字符串转换为一个整数
例如:字符 '0'-'9' 对应的十进制整数是48~57,那么,将对应的整数减去48就得到了对应的整数
Python编程爱好者
2020/11/06
7.6K0
C语言经典100例001-将一个数字字符串转换为一个整数
一个整数+1,攻破了Linux内核!
夜幕降临,喧嚣褪去,繁忙的Linux帝国渐渐平静了下来,谁也没有想到,一场危机正在悄然而至......
轩辕之风
2022/12/20
3860
一个整数+1,攻破了Linux内核!
2022-02-17:寻找最近的回文数。 给定一个表示整数的字符
给定一个表示整数的字符串 n ,返回与它最近的回文整数(不包括自身)。如果不止一个,返回较小的那个。
福大大架构师每日一题
2022/02/17
3510
递归实现输出一个整数的逆序
Sloth like rust, consumes faster than labor wears; often used key is always bright.
小Bob来啦
2020/12/15
3.6K0
递归实现输出一个整数的逆序
getInteger还是getIntValue,这是一个问题
getInteger()和getIntValue()两个方法都是com.alibaba.fastjson.JSONObject中的两个方法,功能类似,从一个JSONObject对象中获取到某个key的value值,区别在于getInteger()返回的是一个integer类型的对象,而getIntValue()返回int值,属于基础数据类型。
FunTester
2021/08/18
1.1K0
点击加载更多

相似问题

jQuery将decimal更改为整数,并检查它是大于还是小于另一个整数

12

如何检查它是字符串还是json

56

它是一个数组还是字符串?

41

cudaMemset() -它是设置字节还是整数?

14

检查它是否是整数。

22
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文