21xrx.com
2024-09-20 00:16:32 Friday
登录
文章检索 我的文章 写文章
C++字符串转整型的方法
2023-07-12 15:30:01 深夜i     --     --
C++ 字符串 转整型 方法

在C++编程中,字符串和整型是最常见的数据类型。字符串通常用于存储文本数据,而整型则用于存储整数值。有时候我们需要将一个字符串转换为一个整数型变量,以便进行数值计算或其他操作。本文将介绍C++中字符串转整型的几种方法。

1. 使用stoi函数

C++标准库提供了stoi函数,可以将一个字符串转换为整型变量。stoi函数的语法如下:


int stoi (const string& str, size_t* pos = 0, int base = 10);

这个函数接受一个字符串作为参数,返回相应的整型值。如果字符串包含非数字字符,则该函数会抛出一个invalid_argument异常。下面是一个使用stoi函数的例子:


#include <iostream>

#include <string>

using namespace std;

int main()

{

  string str = "12345";

  int num = stoi(str);

  cout << "num = " << num << endl;

  return 0;

}

输出结果如下:


num = 12345

2. 使用sscanf函数

C语言的sscanf函数可以用于从字符串中提取格式化的数据。在C++中同样也可以使用该函数进行字符串转换。下面是一个使用sscanf函数的例子:


#include <iostream>

#include <cstdio>

using namespace std;

int main()

{

  char str[] = "12345";

  int num = 0;

  sscanf(str, "%d", &num);

  cout << "num = " << num << endl;

  return 0;

}

输出结果如下:


num = 12345

3. 自己实现转换函数

如果你不想使用现成的函数,也可以自己实现字符串转整型的函数。下面是一个示例代码:


#include <iostream>

using namespace std;

int str2int(const char* str)

{

  int num = 0;

  while (*str != '\0')

  {

    if (*str < '0' || *str > '9')

    {

      return -1;

    }

    num *= 10;

    num += *str - '0';

    ++str;

  }

  return num;

}

int main()

{

  char str[] = "12345";

  int num = str2int(str);

  cout << "num = " << num << endl;

  return 0;

}

输出结果如下:


num = 12345

总结

本文介绍了三种将C++字符串转换为整型的方法。C++库函数中的stoi函数是最常用的方法,可以简单地将一个字符串转换为整型变量。sscanf函数则可以用于提取格式化的数据,也可以用于字符串转换。如果你对C++的标准库不太熟悉,也可以自己实现一个字符串转整型的函数。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复