字符串和整数互转

字符串转整数
http://www.cnblogs.com/processakai/archive/2011/06/24/2089348.html
atoi

isspace(int x)
{
 if(x==' '||x=='\t'||x=='\n'||x=='\f'||x=='\b'||x=='\r')
  return 1;
 else  
  return 0;
}
isdigit(int x)
{
 if(x<='9'&&x>='0')         
  return 1;x` 
 else 
  return 0;

}
int atoi(const char *nptr)
{
        int c;             
        int total;        
        int sign;          

       
        while ( isspace((int)(unsigned char)*nptr) )
            ++nptr;

        c = (int)(unsigned char)*nptr++;
        sign = c;          
        if (c == '-' || c == '+')
            c = (int)(unsigned char)*nptr++;   

        total = 0;

        while (isdigit(c)) {
            total = 10 * total + (c - '0');    
            c = (int)(unsigned char)*nptr++;   
        }

        if (sign == '-')
            return -total;
        else
            return total;  
}


整数转字符串

itoa

char str[50];

sprintf(str,"%d",n);

### C# 中字符串整数互转换 #### 整数字符串换 在C#中,可以使用多种方式将整数换成字符串。最常用的方式之一是调用`ToString()`方法: ```csharp int number = 123; string result = number.ToString(); ``` 另一种常见的做法是利用字符串插值功能来完成这一操作[^1]。 对于更复杂的格式化需求,则可以通过向`ToString()`传递特定的格式说明符来进行定制化的输出: ```csharp // 定义一个带有两位小数点的浮点数并将其换为百分比形式表示 double percentage = 0.875; string formattedPercentage = percentage.ToString("P"); Console.WriteLine(formattedPercentage); // 输出:"87.50 %" ``` 需要注意的是,在某些情况下可能还需要考虑文化差异所带来的影响,这时可以在调用上述函数时指定对应的区域性设置参数。 #### 字符串整数换 当需要把字符串解析回原始的整数值时,通常会采用如下几种手段之一:`Parse()`静态方法、`TryParse()`尝试性解析以及`Convert.ToInt32()`通用换器。其中后者适用于大多数简单场景下的直接型工作;而前两者则提供了更为灵活可控的操作接口供开发者选择适用[^2]。 下面给出一段简单的示例代码展示如何运用这些APIs执行基本类型的互转逻辑: ```csharp using System; class Program { static void Main(string[] args){ int numA = Int32.Parse("456"); // 抛异常版parse bool successB = Int32.TryParse("789", out var numB); // 非抛异常版本try parse Console.WriteLine($"成功了吗?{successB}, 结果:{numB}"); object boxedNumber = 1024L; // 装箱后的long类型对象 long unboxedNum = Convert.ToInt64(boxedNumber); // 解包同时做类型安全检查 string strFromInt = Convert.ToString(unboxedNum, 16); // 十六进制编码 Console.WriteLine(strFromInt.ToUpper()); // 打印大写的hex字符序列:"400" try{ checked { // 开启溢出检测模式 short tooBigForShort = unchecked((short)unboxedNum); } }catch(OverflowException e){ Console.Error.WriteLine(e.Message); // 处理超出范围错误情况 } foreach(var line in new[]{"FF","ff"}){ byte hexByteValue = Byte.Parse(line,System.Globalization.NumberStyles.HexNumber); Console.Write($"{line} -> "); Console.WriteLine(hexByteValue); // 展现不同大小写输入的一致行为 } } } ``` 此段程序不仅涵盖了基础的数据类型间互相变的过程,同时也展示了部分高级特性如异常处理机制的应用实例[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

zlingh

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值