【问题标题】:How to change each specific char to an int in C++如何在 C++ 中将每个特定的 char 更改为 int
【发布时间】:2023-01-13 04:20:15
【问题描述】:

这可能是一个非常愚蠢的问题,但我试图查找并用谷歌搜索仍然无法找到简单的出路......

在 C++ 中,表示使用命名空间标准;

int main()
{
ios_base::sync_with_stdio(0);
cin.tie(0);

String N;

cin >> N;
}

当用户输入为 123 时,N 将为“123”。 如何将“1”转换为 int 1,将“2”转换为 int 2,将“3”转换为 int 3? 我不能使用 % 如果我使用索引方法来处理字符串,那就太棒了

我想要一个接收 N 及其索引作为参数的函数。 例如,

intfunc(string N, int curr_ind)
{
   // change curr_ind of N to a single int
   // for instance, "123" and 1, it would return 2.
}

【问题讨论】:

  • String N; - String 是什么? ios_base::sync_with_stdio(0); cin.tie(0);真的有必要展示你想展示的东西吗?
  • return (N[curr_ind] - '0'); 行不通吗?
  • “我不能使用 %”- 为什么?
  • “我不能使用 %”可能意味着“我的教授希望我在 stringchar 上使用循环,而不是在 int 上使用 %10/10

标签: c++ string casting integer


【解决方案1】:
#include <iostream>
#include <string>

int get_digit_from_string(const std::string&s, int idx) {
  return static_cast<int>(s[idx] - '0');
}

int main() {
  std::string num{"12345"};

  for (std::size_t i = 0; i < num.length(); ++i) {
    std::cout << get_digit_from_string(num, i) << '
';
  }
}

只需获取索引处的字符,减去'0',然后转换为int

减法是必要的,否则数字字符将转换为该字符的 ASCII 值。 '0' 的 ASCII 值是 48

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-08-20
    • 2021-01-08
    • 1970-01-01
    • 1970-01-01
    • 2018-09-05
    • 2017-11-21
    • 2012-06-04
    • 2011-03-31
    相关资源
    最近更新 更多