【问题标题】:Convert char to int in a for loop在 for 循环中将 char 转换为 int
【发布时间】:2012-01-24 10:09:54
【问题描述】:

我正在尝试将 char 转换为传递给方法的 int:

volume('10');

void volume(char* number) {
  for (int i = 0; i < atoi(number); i++) {
    // do something 10 times
  }
}

这似乎不起作用。

【问题讨论】:

  • “不工作”是什么意思?你得到什么输出?这与您的预期相比如何?
  • 你的意思是"10"
  • 总是编译所有警告,并且不忽略任何警告。

标签: c++ for-loop numbers char int


【解决方案1】:

变化:

volume('10');

void volume(char* number) {
  for (int i = 0; i < atoi(number); i++) {
    // do something 10 times
  }
}

到:

volume("10"); // <<< note the double quotes !

void volume(const char* number) { // <<< note the const
  for (int i = 0; i < atoi(number); i++) {
    // do something 10 times
  }
}

注意:如果您在编译时启用了警告(例如gcc -Wall ...),那么上述错误将立即显现。试着养成这样做的习惯,不要忽视警告——它们的存在是有充分理由的,而且通常会为您节省大量时间在运行时调试本可以在编译时修复的问题。

【讨论】:

  • +1 用于将参数类型从 char* 更改为 const char*。如果您在答案中明确提及原因,那也很好,这样 OP 就可以知道。
猜你喜欢
  • 1970-01-01
  • 2018-06-30
  • 2021-01-10
  • 2012-10-13
  • 2015-12-03
  • 2013-09-24
  • 1970-01-01
  • 2021-03-12
  • 2018-02-22
相关资源
最近更新 更多