「研究しましょう」 ブログ

やりたいこと、好きなことを探してネットをさまよう、「かえるノ介」のブログです --- I'm here. Find me out. 我在这里 查找和
0

c++ で、配列の個数を返すマクロ関数。変数の変数名を文字列で返すマクロ。ストリングを大文字に変える、小文字に変える、マクロ関数 ☆ #C #C++ #TIPs #マクロ #関数

 普通の c 言語は文字列を扱うのが面倒。c++ は、高機能さが中途半端で、微妙に使えない。そこで、c++ 用の、小さいマクロ・関数ライブラリーを、ちょっとずつ作っている。

以下がその例。ヘッダファイルなどに書く。#include <algorithm> をインクルードするのを、忘れないように( transform に必要)。

===

#include <algorithm>

//配列の個数を返すマクロ関数
#define ARRAY_SIZE(a) (sizeof(a)/sizeof(a[0]))

//引数にした変数を変数名を示す文字列リテラルとして返すマクロ関数
#define STR(var) #var

//ストリングを大文字に変えるマクロ関数
#define STRING_TO_UPPER(str_value) transform(str_value.cbegin(), str_value.cend(), str_value.begin(), toupper);

//ストリングを小文字に変えるマクロ関数
#define STRING_TO_LOWER(str_value) transform(str_value.cbegin(), str_value.cend(), str_value.begin(), tolower);
===

どうしてそうなるかは、私も、ネットを検索して見つけただけなので、分からない。

0

プログラムの小さい便利関数(大文字小文字変換、大文字にして比較、数字の桁数を返す、等々)

 作っておけば、後々便利に使える、C++ の小っちゃい関数群、その1。


#include

//配列の個数を返すマクロ関数
#define ARRAY_SIZE(a) (sizeof(a)/sizeof(a[0]))

//引数にした変数を変数名を示す文字列リテラルとして返すマクロ関数
#define STR(var) #var

/// string 文字列を大文字にしてから比較する
/// true:両者の大文字表記が等しい場合
bool str_stringL(std::string str1, std::string str2)
{
STRING_TO_UPPER(str1)
STRING_TO_UPPER(str2)
if (str1==str2){
return true;
}
return false;
}

///数値の桁数を返す(割り算式)
unsigned int countDigit(unsigned long number)
{
unsigned long n_digit = 0; //桁数
while (number != 0){
number = number/10;
n_digit++;
}
return n_digit;
}

///数値の桁数を返す(文字数カウント式)
unsigned int countDigitByStr(unsigned long number)
{
return std::to_string(number).length();
}

0

あぁ、動かない・・・ (×_×)  #プログラム

 今作っている、プログラムが動かなくなってしまった。最初は動いていたのに、新しい仕様をコーディングしたら、動かなくなった。

変更前に作ったデータを入れると、まともに動く。変更した今の状態で、同じようにデータを作ると、動かない。

  「たすけてぇ~」

動くデータがあると言うだけでも、まだ、修復できる可能性がある。

  「明日、必ず動かすぞぉ~!」

てか、動いてくれぇ ('ェ') yoro

このカテゴリーに該当する記事はありません。