求序列中数字的总和

问题描述 投票:0回答:1

输入一个字符串并打印字符串中数字的总和

输入:abc123kjewd456

输出:579

我想用字符串、数组、循环和很多方式中的指针进行编码,你能帮我使用最好的方法吗?我可以向您提供完整的主题:当今,保护用户信息是每个计算机用户的一个问题。为了提高帐户的安全性,Nam 决定使用由英文字母和数字组成的代码序列来隐藏其密码。由于很久没用过,所以记不太清了。我想请各位程序员帮我找回密码。密码是序列中数字的总和。

c++ string sum char numbers
1个回答
0
投票
int sumInString(const char *str) {
  // valid str
  if (str == NULL || *str == '\0') {
    return 0;
  }
  int num = 0;
  int res = 0;
  int i = 0;
  while (str[i] != '\0') {
    if (str[i] >= '0' && str[i] <= '9') /*is numerical*/ {
      num *= 10;
      num += str[i] - '0'; // char->int conversion
    } else {
      res += num;
      num = 0;
    }
    ++i;
  }
  res += num; // add the remainder
  return res;
}
© www.soinside.com 2019 - 2024. All rights reserved.