在C++中把字符串转换为整数的两种简单方法

目录
  • C++中的数据类型
  • 如何在C++中声明和初始化 int s
  • 如何在C++中声明和初始化 string s
    • 如何使用 stoi() 函数将字符串转换为int
    • 如何使用stringstream 类将一个字符串转换为一个int
  • 总结

当你用C++编码时,经常会有这样的时候,你会想把一种数据类型转换为另一种。

在这篇文章中,你将看到两种最流行的方法来学习如何在C++中把字符串转换为整数。

让我们开始吧!

C++中的数据类型

C++编程语言有一些内置的数据类型。

  • int,用于整数(整数)(例如10,150)。
  • double,用于浮点数(例如5.0,4.5)。
  • char,用于单个字符(例如'D','!')。
  • string, 一系列的字符(例如 "Hello")。
  • bool,用于布尔值(真或假)。

C++是一种强类型的编程语言,这意味着当你创建一个变量时,你必须明确地声明它将存储什么类型的值。

如何在C++中声明和初始化 int s

要在C++中声明一个int 变量,你需要首先写出该变量的数据类型--本例中是int 。这将让编译器知道该变量可以存储什么类型的值,因此它可以采取什么行动。

接下来,你需要给变量一个名字。

最后,不要忘了用分号来结束语句。

#include <iostream>

int main() {
    int age;
}

然后,你可以给你创建的变量一个值,像这样。

#include <iostream>

int main() {
    int age;
    age = 28;
}

你可以通过初始化变量和最后打印结果来组合这些动作,而不是作为单独的步骤来做。

// a header file that enables the use of functions for outputing information
//e.g. cout or inputing information e.g. cin
#include <iostream> 

// a namespace statement; you won't have to use the std:: prefix
using namespace std;

int main() { // start of main function of the program
    int age = 28;
    // initialize a variable.
    //Initializing  is providing the type,name and value of the varibale in one go.

    // output to the console: "My age is 28",using chaining, <<
    cout << "My age is: " << age << endl;
}// end the main function

如何在C++中声明和初始化 string s

字符串是单个字符的集合。

在C++中声明字符串的工作方式与声明和初始化ints非常相似,你在上面的章节中看到了这一点。

C++标准库提供了一个string 类。为了使用字符串数据类型,你必须在文件的顶部,在#include <iostream> 之后,包括<string> 头部库。

在包括该头文件之后,你还可以添加你之前看到的using namespace std;

在其他方面,加入这一行后,你在创建字符串变量时将不必使用std::string ,只需使用string

#include <iostream>
#include <string>
using namespace std;

int main() {
    //declare a string variable

    string greeting;
    greeting = "Hello";
    //the `=` is the assignment operator,assigning the value to the variable

}

或者你可以初始化一个字符串变量并将其打印到控制台。

#include <iostream>
#include <string>
using namespace std;

int main() {
    //initialize a string variable

    string greeting = "Hello";

   //output "Hello" to the console
   cout << greeting << endl;
}

如前所述,C++是一种强类型的语言。

如果你试图给出一个与数据类型不一致的值,你会得到一个错误。

另外,将字符串转换为整数并不像使用类型转换那样简单,你可以在将doubles转换为ints时使用。

例如,你不能这样做。

#include <iostream>
#include <string>
using namespace std;

int main() {
   string str = "7";
   int num;

   num = (int) str;
}

编译后的错误将是。

hellp.cpp:9:10: error: no matching conversion for C-style cast from 'std::__1::string' (aka
      'basic_string<char, char_traits<char>, allocator<char> >') to 'int'
   num = (int) str;
         ^~~~~~~~~
/Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/string:875:5: note: candidate function
    operator __self_view() const _NOEXCEPT { return __self_view(data(), size()); }
    ^
1 error generated.

有几种方法可以将字符串转换为int,你会在后面的章节中看到其中两种方法。

如何使用 stoi() 函数将字符串转换为int

将字符串对象转换为数字int的一个有效方法是使用stoi() 函数。

这种方法通常用于较新版本的C++,在C++11中被引入。

它将一个字符串值作为输入,并将它的整数版本作为输出返回。

#include <iostream>
#include <string>
using namespace std;

int main() {
   // a string variable named str
   string str = "7";
   //print to the console
   cout << "I am a string " << str << endl;

   //convert the string str variable to have an int value
   //place the new value in a new variable that holds int values, named num
   int num = stoi(str);

   //print to the console
   cout << "I am an int " << num << endl;
}

输出。

I am a string 7
I am an int 7

如何使用stringstream 类将一个字符串转换为一个int

stringstream 类主要用于早期版本的C++。它通过对字符串进行输入和输出来工作。

要使用它,你首先要在你的程序顶部加入sstream 库,加入一行#include <sstream>

然后你添加stringstream ,并创建一个stringstream 对象,该对象将保存你要转换为int的字符串的值,并在转换为int的过程中使用。

你使用<< 操作符,从字符串变量中提取字符串。

最后,你使用>> 操作符将新转换的int值输入到int变量中。

#include <iostream>
#include <string>
#include <sstream> // this will allow you to use stringstream in your program

using namespace std;

int main() {
    //create a stringstream object, to input/output strings
   stringstream ss; 

   // a variable named str, that is of string data type
   string str = "7";

   // a variable named num, that is of int data type
   int num;

   //extract the string from the str variable (input the string in the stream)
   ss << str;

   // place the converted value to the int variable
   ss >> num;

   //print to the consloe
   cout << num << endl; // prints the intiger value 7
}

总结

这就是你的成果!你已经看到了在C++中把字符串转换为整数的两种简单方法。

到此这篇关于在C++中把字符串转换为整数的两种简单方法的文章就介绍到这了,更多相关C++ 字符串转换为整数内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • C++实现字符串切割的两种方法

    目录 字符串切割的两种方法 1.通过stl实现 2.通过使用strtok()函数实现 字符串分割&类型转换(string->double) 字符串切割的两种方法 字符串切割的使用频率还是挺高的,string本身没有提供切割的方法,但可以使用stl提供的封装进行实现或者通过c函数strtok()函数实现. 1.通过stl实现 涉及到string类的两个函数find和substr: 1.find函数 原型:size_t find ( const string& str, size_t p

  • C++中string字符串分割函数split()的4种实现方法

    目录 一.使用stringstream流 二.使用string类提供的find方法与substr方法 三.使用C库函数strtok 四.使用regex_token_iterator(正则表达式) 总结 如: string str1 = "This is a test"; string str2 = "This-is-a-test"; string str2 = "This+is+a+test"; 我们如何将以上字符串按照某种分隔符( ,-,+),

  • 基于C++实现去除字符串头尾指定字符功能

    目录 一.从头部开始去除指定字符 二.去除尾部指定的字符 三.测试比较 编程时我们经常需要对字符串进行操作,其中有一项操作就是去除字符串的头(尾)指定的字符,比如空格.通常我们会使用封装好的库函数或者类函数的Trim方法来实现,如果自己动手写一个TrimHead和TrimTail函数该如何实现呢? 本文针对字符串头(尾)部指定的字符的去除,分别给出两个实现方法.并分别比较一下改进后的性能如何? 一.从头部开始去除指定字符 首先从头遍历,直到遇见第一个非指定字符,此后将后续字符按顺序逐一前移. /

  • C语言与C++中关于字符串使用的比较

    目录 相似处 字符串字面值 C++标准库string类型 相似处   C++作为C的进阶版,可以调用C的库函数.C++标准库包括了C标准库,C++头文件cctype其实就利用了C的ctype.h中的库函数.在C++中使用C的头文件都会在前面加c,比如C的name.h在C++就是cname.   为了与C兼容,C++有字符串字面值,也就是类似"hello world"这种,但是这和string类型不一样,视编译器而定string最后不一定有’\0’. 字符串字面值   字符串字面值是一串

  • C++超详细讲解字符串类

    目录 一.历史遗留问题 二.解决方案 三.标准库中的字符串类 四.字符串循环右移 五.小结 一.历史遗留问题 C 语言不支持真正意义上的字符串 C 语言用字符数组和一组函数实现字符串操作 C 语言不支持自定义类型,因此无法获得字符串类型 二.解决方案 从 C 到 C++ 的进化过程引入了自定义类型 在 C++ 中可以通过类完成字符串类型的定义 三.标准库中的字符串类 C++ 语言直接支持 C 语言的所有概念 C++ 语言中没有原生的字符串类型 C++ 标准库提供了 string 类型 strin

  • 在C++中把字符串转换为整数的两种简单方法

    目录 C++中的数据类型 如何在C++中声明和初始化 int s 如何在C++中声明和初始化 string s 如何使用 stoi() 函数将字符串转换为int 如何使用stringstream 类将一个字符串转换为一个int 总结 当你用C++编码时,经常会有这样的时候,你会想把一种数据类型转换为另一种. 在这篇文章中,你将看到两种最流行的方法来学习如何在C++中把字符串转换为整数. 让我们开始吧! C++中的数据类型 C++编程语言有一些内置的数据类型. int,用于整数(整数)(例如10,

  • Java 中二进制转换成十六进制的两种实现方法

    Java 中二进制转换成十六进制的两种实现方法 每个字节转成16进制,方法1 /** * 每个字节转成16进制,方法1 * * @param result */ private static String toHex(byte[] result) { StringBuffer sb = new StringBuffer(result.length * 2); for (int i = 0; i < result.length; i++) { sb.append(Character.forDigi

  • iOS中UIAlertView3秒后消失的两种实现方法

    一,效果图. 二,代码. - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view, typically from a nib. UIAlertView* alert = [[UIAlertView alloc]initWithTitle:nil message:@"此信息3秒后消失" delegate:nil cancelButtonTitle:nil ot

  • JavaScript将字符串转换为整数的方法

    本文实例讲述了JavaScript将字符串转换为整数的方法.分享给大家供大家参考.具体如下: var s='1'; var s2='2'; alert(parseInt(s) parseInt(s2)); 希望本文所述对大家的javascript程序设计有所帮助.

  • python 将列表中的字符串连接成一个长路径的方法

    今天实习公司分配了一个数据处理的任务.在将列表中的字符串连接成一个长路径时,我遇到了如下问题: import os path_list = ['first_directory', 'second_directory', 'file.txt'] print os.path.join(path_list) 发现 os.path.join 之后,依然是字符串列表.这我就纳闷了: ['first_directory', 'second_directory', 'file.txt'] 细思后想明白了,os

  • Python 字符串转换为整形和浮点类型的方法

    Python2.6 之前:字符串转换为整形和浮点型 >>>import string >>>string.atoi('34.1') 34 >>>string.atof('34.1') 34.1 python2.6之后:字符串转换为整形和浮点型 >>>import string >>>int('34.1') 34 >>>float('34.1') 34.1 以上这篇Python 字符串转换为整形和浮点

  • java中String字符串删除空格的七种方式

    目录 trim() strip() stripLeading() 和 stripTrailing() replace replaceAll replaceFirst 总结 在Java中从字符串中删除空格有很多不同的方法,如trim,replaceAll等.但是,在JDK 11添加了一些新的功能,如strip.stripLeading.stripTrailing等. 想要从String中移除空格部分,有多少种方法,下面介绍JDK原生自带的方法,不包含第三方工具类库中的类似方法 trim() : 删

  • Java 中 Form表单数据的两种提交方式

    1 GET - 从指定的服务器中获取数据 1.1 GET方法 使用GET方法时,查询字符串(键值对)被附加在URL地址后面一起发送到服务器,例如:http://localhost:8080//customer/customer_info?res=json&mt=0&custId=1 1.2 特点 (1) GET请求能够被缓存 (2) GET请求会保存在浏览器的浏览记录中 (3) 以GET请求的URL能够保存为浏览器书签 (4) GET请求有长度限制(不能多于1024字节) (5) GET请

  • 判断输入的字符串是否是日期格式的简单方法

    实例如下所示: function isDate(dateString){ if(dateString.trim()=="")return true; var r=dateString.match(/^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2})$/); if(r==null){ alert("请输入格式正确的日期\n\r日期格式:yyyy-mm-dd\n\r例 如:2008-08-08\n\r"); return false; } var

  • ASP.NET MVC中URL地址传参的两种写法

    一.url地址传参的第一种写法 1.通过mvc中默认的url地址书写格式:控制器/方法名/参数 2.实例:http://localhost:39270/RequestDemo/Index/88,默认参数名为id所以名称为id. 如果使用其他名称,后台是无法读取的会报错 二.url地址传参的第二种写法 1.使用?加参数名=参数值的写法,如果有多个参数使用&来连接 http://localhost:39270/RequestDemo/Index?id=88&name=%E5%BC%A0%E4%

随机推荐