21xrx.com
2025-03-29 08:13:56 Saturday
文章检索 我的文章 写文章
C++字符串转整型的方法
2023-07-12 15:30:01 深夜i     15     0
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++的标准库不太熟悉,也可以自己实现一个字符串转整型的函数。

  
  

评论区

请求出错了