C++の勉強をしているものです。
string型の文字列が数値かどうかを判定するサンプルを見ていたところ、
見たことのないfor文の書き方をみて、少々混乱しています。
お力添えをお願いしたいです。
C++
1#include <iostream> 2#include <string> 3#include <map> 4 5using namespace std; 6 7bool isNumber(const string& str) 8{ 9 for (char const &c : str) { 10 if (std::isdigit(c) == 0) return false; 11 } 12 return true; 13} 14 15int main() { 16 string num; 17 cout << "整数の値を入力してください:" 18 cin >> num; 19 20 if(isNumber(num) != true){ 21 cout << "整数ではない"; 22 } 23 24 25 return 0; 26} 27
isNumberは入力された文字列が数値であれば、true、そうでなければfalseを返します。
まず、この関数の内部の
for (char const &c : str)
の書き方が初めて見るもので混乱しています。調べたところ、initializer listというものらしく、char const型
のポインタ変数cをstrの先頭アドレスで初期化しているものと考えてはいるのですが、まずこの認識はあっていますでしょうか。
その後、このcに関する変化式が省略されているのですが、省略された場合の変化式のデフォルトはこの場合、C++;となるであっていますでしょうか。
稚拙な文章で分かりずらく申し訳ありませんが、わかる方いらっしゃたらよろしくお願いいたします。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/10/16 14:39