MochiuWiki : SUSE, EC, PCB
案内
メインページ
最近の更新
おまかせ表示
MediaWiki についてのヘルプ
ツール
リンク元
関連ページの更新状況
特別ページ
ページ情報
We ask for
Donations
検索
個人用ツール
ログイン
Toggle dark mode
名前空間
ページ
議論
表示
閲覧
ソースを閲覧
履歴を表示
C++の基礎 - 変数のソースを表示
提供: MochiuWiki : SUSE, EC, PCB
←
C++の基礎 - 変数
あなたには「このページの編集」を行う権限がありません。理由は以下の通りです:
この操作は、次のグループのいずれかに属する利用者のみが実行できます:
管理者
、new-group。
このページのソースの閲覧やコピーができます。
== 概要 == <br><br> == 数値の桁数 == ==== std::to_string関数およびstd::string::sizeメソッドの使用 ==== 数値の桁数を数える最も簡単な方法は、数値を<code>std::string</code>オブジェクトに変換した後、<code>std::string</code>の<code>size</code>メソッドを呼び出して桁数を取得することである。<br> <br> 以下の例では、整数を文字列に変換した後、文字列のサイズを整数として取得している。<br> ただし、符号記号もカウントするため、負の整数に対して誤った数値が出力されるため、負の整数には使用できない。<br> <syntaxhighlight lang="c++"> #include <iostream> #include <vector> #include <string> template<typename T> size_t countDigits(T n) { std::string tmp = std::to_string(n); return tmp.size(); } int main() { int num1 = 1234567; int num2 = -1234567; std::cout << "number of digits in " << num1 << " = " << countDigits(num1) << std::endl; std::cout << "number of digits in " << num2 << " = " << countDigits(num2) << std::endl; exit(EXIT_SUCCESS); } </syntaxhighlight> <br> // 出力例 number of digits in 1234567 = 7 number of digits in -1234567 = 8 <br> 以下の例では、上記の処理に加えて、負の整数の場合は文字列のサイズを1減算している。<br> <syntaxhighlight lang="c++"> #include <iostream> #include <vector> #include <string> template<typename T> size_t countDigits(T n) { std::string tmp = std::to_string(n); if (n < 0) { return tmp.size() - 1; } return tmp.size(); } int main() { int num1 = 1234567; int num2 = -1234567; std::cout << "number of digits in " << num1 << " = " << countDigits(num1) << std::endl; std::cout << "number of digits in " << num2 << " = " << countDigits(num2) << std::endl; exit(EXIT_SUCCESS); } </syntaxhighlight> <br> // 出力例 number of digits in 1234567 = 7 number of digits in -1234567 = 7 <br> ==== std::string::eraseメソッドおよびstd::remove_if関数の使用 ==== <code>std::string::erase</code>メソッドおよび<code>std::remove_if</code>関数を使用して、数字以外の記号を削除することができる。<br> <br> ただし、以下の例では、浮動小数点が処理できないことに注意する。<br> <syntaxhighlight lang="c++"> #include <iostream> #include <vector> #include <string> template<typename T> size_t countDigits(T n) { std::string tmp = std::to_string(n); tmp.erase(std::remove_if(tmp.begin(), tmp.end(), ispunct), tmp.end()); return tmp.size(); } int main() { int num1 = 1234567; int num2 = -1234567; std::cout << "number of digits in " << num1 << " = " << countDigits(num1) << std::endl; std::cout << "number of digits in " << num2 << " = " << countDigits(num2) << std::endl; exit(EXIT_SUCCESS); } </syntaxhighlight> <br> // 出力例 number of digits in 1234567 = 7 number of digits in -1234567 = 7 <br><br> __FORCETOC__ [[カテゴリ:C++]]
C++の基礎 - 変数
に戻る。
案内
メインページ
最近の更新
おまかせ表示
MediaWiki についてのヘルプ
ツール
リンク元
関連ページの更新状況
特別ページ
ページ情報
We ask for
Donations
Collapse