c++ sting互转数值型long

C++ 数值型 与 string的转化

int转化为string

使用itoa(int to string)
char *itoa( int value, char *string,int radix);

string 转 char[]一个一个取出来赋值
value:欲转换的数据。
string:目标字符串的地址。
radix:转换后的进制数,可以是10进制、16进制等。
返回指向string这个字符串的指针

例:

int aa = 30;
char c[8];
itoa(aa,c,16);
cout<<c<<endl; 

注意:itoa并不是一个标准的C函数,它是Windows特有的,如果要写跨平台的程序,请用stringstream。

使用stringstream
int aa = 30;
stringstream ss;
ss<<aa; 
string s1 = ss.str();
cout<<s1<<endl; // 30

string s2;
ss>>s2;
cout<<s2<<endl; // 30

stringstream流互相转换

string转化为int

使用strtol(string to long)
string s = "17";
char* end;
long i = sstrtol(s.c_str(), s.end ,16);
cout<<i<<endl; 
使用stringstream
string s = "17";

stringstream ss;
ss<<s;

int i;
ss>>i;
cout<<i<<endl; 

stringstream使用时必须包含

#include <sstream>

### 将字符串类型换为长整型 #### Java中的实现方式 在Java中,可以利用`Long.parseLong()`方法来完成这一操作。此函数接收一个表示数字的字符串作为参数并返回对应的长整型数值。需要注意的是,如果输入不是有效的数字表达形式,则会抛出异常[^1]。 ```java try { String strNumber = "123456789"; long l = Long.parseLong(strNumber); } catch (NumberFormatException e) { System.out.println("无法解析该字符串"); } ``` #### C#环境下的解决办法 对于C#而言,推荐采用`long.TryParse`来进行安全可靠的换工作。这种方法不仅能够尝试把给定的字符串解释成长整形数,而且还能通过其布尔返回值告知调用者换过程是否顺利完成[^2]。 ```csharp string strNum = "9876543210"; if (long.TryParse(strNum, out long result)) { Console.WriteLine($"换成功: {result}"); } else { Console.WriteLine("换失败"); } ``` #### Python里的简易途径 Python提供了内置的`int()`构造器用于基本的数据类型变,当指定base参数时还可以支持不同进制间的互转;而对于更复杂的场景比如处理带符号的大数等情况则可能需要用到第三方库如gmpy2等工具辅助完成[^3]。 ```python str_num = '123456789' lng_value = int(str_num) print(lng_value) ``` #### BeanShell/JMeter脚本内的应用实例 针对BeanShell或JMeter这样的特定上下文中遇到的问题,可以通过如下所示的方式定义一段简单的逻辑片段以达到目的。这里假设存在名为`depositamount`以及`imagecount`两个预设好的变量需要参与运算[^4]。 ```beanshell // 假设 depositAmount 和 imageCount 是已经存在的字符串变量 String depositAmountStr = vars.get("depositamount"); String imageCountStr = vars.get("imagecount"); // 换成Long对象 Long depositAmount = Long.valueOf(depositAmountStr); Long imageCount = Long.valueOf(imageCountStr); // 执行某些计算... Long totalCost = depositAmount * imageCount; // 如果必要的话再回去成字符串格式存入新的属性里去 vars.put("total_cost", "" + totalCost); ``` #### 使用标准C语言API 最后,在C语言的标准库中有专门为此设计的功能——即`strtol`函数。它可以从字符指针所指向的位置读取直到不能再识别为止的一串连续字符,并按照指定基数将其映射到相应的有符号长整量上[^5]。 ```c #include <stdio.h> #include <stdlib.h> int main() { const char* numStr = "-1234L"; char* endPtr; long val = strtol(numStr, &endPtr, 10); printf("%ld\n", val); return 0; } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值