21xrx.com
2025-02-16 22:09:03 Sunday
登录
文章检索 我的文章 写文章
如何将C++字符数组转换为长整型
2023-07-03 12:35:40 深夜i     --     --
C++ 字符数组 转换 长整型 atoi函数

C++中的字符数组可以很方便地存储字符串,但是在一些需要进行数值计算的场景中,需要将字符数组转换为长整型(long)。下面介绍几种常用的方法:

1. 使用标准库函数

C++提供了一些标准函数可以将字符数组转换为长整型,比如atol()、strtol()和strtoul()等。这些函数都需要包含头文件

例如:


#include <cstdlib>

#include <iostream>

#include <cstring>

int main() {

  char str[] = "1234567890";

  long val = strtol(str, NULL, 10);

  std::cout << "val = " << val << '\n';

  return 0;

}

该程序的输出为:


val = 1234567890

2. 手动实现转换

如果想要自己手动实现将字符数组转换为长整型的函数,可以利用字符的ASCII码值进行转换。

例如:


#include <iostream>

#include <cstring>

long charToLong(char* str) {

  int len = strlen(str);

  long sum = 0;

  for (int i = 0; i < len; i++) {

    sum = sum * 10 + (str[i] - '0');

  }

  return sum;

}

int main() {

  char str[] = "1234567890";

  long val = charToLong(str);

  std::cout << "val = " << val << '\n';

  return 0;

}

该程序的输出为:


val = 1234567890

无论哪种方法,都需要确保字符数组中包含的字符串可以被转换为长整型,否则可能会导致异常。另外,在使用标准库函数时,需要注意参数的设置,比如strtol()函数中的第二个参数和第三个参数。

  
  

评论区

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