c++11-关于c++string中的stoi用法

问题描述

关于c++string中的stoi用法

#include
#include
using namespace std;

int main()
{
string str = "89";
int i = stoi(str);
cout << i;
return 0;
}
我的编译器是codeblocks13.12 已经调过按照c++11的标准编译

解决方案

stoi当字符串不符合规范时,会抛出异常,所以你应该捕获异常来做

 #include <stdexcept>

std::string y = "2323298347293874928374927392374924"
int x;

try {
  x = stoi(y);
}
catch(std::invalid_argument& e){
  // if no conversion could be performed
}
catch(std::out_of_range& e){
  // if the converted value would fall out of the range of the result type
  // or if the underlying function (std::strtol or std::strtoull) sets errno
  // to ERANGE.
}
catch(...) {
  // everything else
}

解决方案二:

解决方案三:

我在VS2013运行,没有问题。

解决方案四:

cout << i;改成cout << i<<endl;更好。带回车。
cout << i;也正确

解决方案五:

stoi大致就是格式化字符串的功能,有什么问题?

时间: 2024-08-04 06:31:34

c++11-关于c++string中的stoi用法的相关文章

find()-string中find函数的疑问

问题描述 string中find函数的疑问 如果find函数在sting中没有找到指定字符串则返回-1,那么为什么-1不小于string.length()图中的if语句为什么不执行? 解决方案 String 中find 函数的使用string.find()函数用法string中find函数用法 解决方案二: 感觉他是想判断找到了6的情况,很怪异的用法 解决方案三: 我在我自己电脑上敲了同样的代码,没有问题啊 ```string strTemp = "12345"; int nLen =

string中的单词查找与左右字符剪切

需求源于为博客文章添加tag的字符串处理: tag之间以","分隔,要根据这个分隔符分离出各个tag:另外处于习惯用户可能敲入多余的空格,所以需要对tag的左右空格进行剪切.stl的string类没有现成的方法只好自己写一个.第一版函数原型如下:  void find_all_words(const string& str, char decollator, vector<string> words); 其中参数decollator表示分隔符,words用于存储分离

Oracle 11.2 RAC环境中CRSD进程简介

在11.2中,CRSD进程不再是RAC中最关键的进程之一. 如果对10g RAC比较熟悉,应该清楚CRSD进程的重要性,Oracle在操作系统启动后,就是通过启动这个进程然后启动整个CLUSTER以及数据库的. 在11.2的RAC中,Oracle调整了ASM,使得OCR和VOT可以存储在ASM磁盘组中.ASM是CLUSTER所支持的一个组件,而CLUSTER启动所需的OCR和VOT却要放在ASM中,这其实要解决一个先有鸡还是先有蛋的问题.最终Oracle通过OHASD进程的方式解决了这个问题,而

string-java取String中的数据

问题描述 java取String中的数据 {"max":电影,"min":电视剧, 综艺} 这种格式的String 数据 ,不能转换成 JSONObject对象 可是我想取出其中的数据呀 怎么取 就是最后取出的是 max =" 电影" min = "电视剧,综艺" 来个大神吧!!!!!!!! 解决方案 解决了 存的时候就存成JSONObject 取的时候就可以转成JSONObject了 SB了

android-当 string 中包含“-”时,不能删除 sqlite 中的指定行

问题描述 当 string 中包含"-"时,不能删除 sqlite 中的指定行 在下面的 listview 中显示名字和号码,这些数据都是从数据库中获取.当我删除比如数字区域是 "123456"时,能正常运行.但是问题是不能删除一些 list items ,比如它的数字区域是 "888-888-00". 我使用的代码 : DatabaseHelpher.java private static final String KEY_NAME = &qu

关于string中的equals()求教

问题描述 关于string中的equals()求教 str.equals(str2) string重写的equals()函数中 有这样一段: private final char value[];value是一个定义好的char数组, int n = value.length;//这句话是str的长度,是调用这个方法时自动将str赋值给value吗? if (n == anotherString.value.length) {//anotherString.value 这是怎么实现的啊?字符串.

android-Android string中msgid是怎么生成的?

问题描述 Android string中msgid是怎么生成的? 手动 msgid是怎么生成的,和android国际化有关系! 解决方案 随机生成的,随机的目的是为了不重复.然后每个字符串有个id,便于翻译. 解决方案二: 系统生成,我们用就可以了.就像我们每个人都有一个身份证号.

java for循环问题放入一条string中

问题描述 java for循环问题放入一条string中 for(int i=1; i<5;++i){ System.out.println(i);} i的输出值是1,2,3,4:有什么办法能够把1234放在string中下面的这个样子如果输出是 " test1 AND table 1,test2 AND table 2,test3 AND table 3,test4 AND table4;该怎么办? 解决方案 StringBuffer sb = new StringBuffer(); f

从源代码的角度聊聊java中StringBuffer、StringBuilder、String中的字符串拼接

长久以来,我们被教导字符串的连接最好用StringBuffer.StringBuilder,但是我们却不知道这两者之间的区别.跟字符串相关的一些方法中总是有CharSequence.StringBuffer.StringBuilder.String,他们之间到底有什么联系呢? 1.从类的定义看CharSequence.StringBuffer.StringBuilder.String的关系 下面先贴上这四者的定义(来自JDK1.6) CharSequence是一个定义字符串操作的接口,Strin