C++:一文字だけ数字に変換、文字列から数字に変換

前提知識

string c = "1";
int n = c[0] - '0';

-'0' で c の一文字目が char から int になる。

1から9までを足す

  string s = "123456789";
  int l = N.length();
  int total = 0;
  for(int i=0;i<l;i++){
    total += N[i] - '0';
    cout << total << endl;
  }

実行結果

1
3
6
10
15
21
28
36
45

そのまま数字にしたい場合

  string s = "123456789";
  int l = N.length();
  int total = 0;
  for(int i=0;i<l;i++){
    total = total * 10 + N[i] - '0';
    cout << total << endl;
  }

簡単な関数化

int stringtoint(string s){
  int l = s.size();
  int total = 0;
  for(int i=0;i<l;i++){
    total = total*10 + s[i] - '0';
  }
  return total;
}

stoi() ではエラーがでたりするのでこっちのほうが楽かも。
結局知識が足りない。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA