error C2440: ‘初期化中’: ‘void *’ から ‘char *’ に変換できません。 警告:C言語なのにC++コンパイラ使ってる?… 続きを読む Cだと思っていたらC++だった
タグ: 入門
【C言語サンプル】
年月日から曜日を求める
■ツェラー(Zeller)の公式で曜日を求める 年月日から曜日を求めるのに有名なツェラーの公式をC言語化してます。 1月2月が前年の13月14月になったり、4,100,400の閏年関連の定数が 筆者には難解なので、オリジ… 続きを読む 【C言語サンプル】
年月日から曜日を求める
【C言語サンプル】
日付の引き算を年月日で表示
■サンプルコード 遊び方 $./a.out 1998/08/10 コピペしコンパイル&実行し、動作確認をして下さい。
【C言語サンプル】
GNU拡張機能のswitchを使って西暦を和暦(元号)に変換
■西暦を和暦(元号)に変換 例: 2023/06/03 ->令和/5年/06/03 GNUの拡張機能を使用するとcase 18680908 … 19120729:のように、case 文の範囲指定が出来ます。 gcc… 続きを読む 【C言語サンプル】
GNU拡張機能のswitchを使って西暦を和暦(元号)に変換
【C言語サンプル】
コマンドラインから3つの整数を入力し大きい順に並べる
■max()/min()マクロの使用例 遊び方 $./a.out 1 10 5 コピペしコンパイル&実行し、動作確認をして下さい。
【C言語サンプル】
union(共用体)を使った エンディアン変換
■16bit(2byte)をスワップする ■32bit(4byte)をスワップする ■64bit(8byte)をスワップする ■標準関数を使ったバイトスワップ ■union(共用体)を使ったスワップ(まとめ)
【C言語サンプル】
西暦から干支を求める
■strcpyを使って干支を求める 意図した動きをしますが記述量が多くて、処理速度も遅いです。。 strcpyで文字列を返却値に使う配列にわざわざコピーしていますが無駄です。 ■文字列リテラルを使って干支を求める str… 続きを読む 【C言語サンプル】
西暦から干支を求める
【C言語サンプル】
円周率の求め方 (ライプニッツの公式)
■円周率の求め方ソース全文 ●ライプニッツの公式使用 π/4 = 1 – 1/3 + 1/5 – 1/7 + 1/9 – 1/11 + … ●M_PIやM_PILは標準じゃないそうです… 続きを読む 【C言語サンプル】
円周率の求め方 (ライプニッツの公式)
【C言語サンプル】
根性のない電卓
■このコードは手抜きです ・ゼロ割り算をガードしていません。・1+1は出来ますが、1+1+1は出来ません・+-*/の四則演算しか出来ません・演算子が2文字以上の考慮はしていません(<<とか) ■このコードで学… 続きを読む 【C言語サンプル】
根性のない電卓
【C言語サンプル】
csvファイルを読んで構造体に設定する
■構造体の使い方に慣れましょう コピペしてコンパイル&実行して動作を確認してください。 ■input.csvの例
【C言語サンプル】
strtok関数を使って文字列を単語に分解する方法
■strtokの意味 strtok=string+tokenstring=文字列token=単語strtokは文字列を単語に分解する関数です。 ■strtok関数の使用例 コンパイル&実行してみて下さい。 ※window… 続きを読む 【C言語サンプル】
strtok関数を使って文字列を単語に分解する方法
【C言語サンプル】
構造体ポインタの使い方
■単純な構造体メンバの参照 ■間接演算子 * と構造体ポインタ 読みにくいのでこのスタイルは通常使用されません。 ■アロー演算子 -> と構造体ポインタ 「構造体ポインタの指す先のメンバ」と自然に読めるので通常このスタイ… 続きを読む 【C言語サンプル】
構造体ポインタの使い方
【C言語サンプル】
配列の中から 最大値と最小値を見つける
■1.サンプルコード コピペしコンパイル&実行し動作確認してください。 ■2.昔風の書き方でバグのあるサンプルコード このソースコードはバグっているので真似しないでください。力試しに正しく動くように直してみましょ… 続きを読む 【C言語サンプル】
配列の中から 最大値と最小値を見つける
【C言語サンプル】
今時(C99仕様)の構造体初期化
■構造体の宣言 ■C99仕様の構造体の定義と初期化 ■構造体ポインタを使ったメンバ表示 ■構造体に慣れましょう コピペしてコンパイル&実行して動作を確認してください。
【C言語】
NULLにキャストするな!
不要なキャストを削除しよう
warning: cast from pointer to integer of different size 警告:ポインタ型を型幅の違う整数型にキャストした[-Wpointer-to-int-cast] ■memse… 続きを読む 【C言語】
NULLにキャストするな!
不要なキャストを削除しよう
【C言語サンプル】
シーザー暗号 (ctype.hの使い方)
■1.シーザー暗号ソース全文 ■2.遊び方 $./a.out /usr/include/stdio.h↓暗号化したいファイル名を指定します。暗号化したファイル”encrypt.txt”と、復号化し… 続きを読む 【C言語サンプル】
シーザー暗号 (ctype.hの使い方)
【C言語サンプル】
10進数を2進数に 2進数を10進数に変換
■十進数値を二進文字列変換 intは32bitを前提としています。 ■二進文字列を十進数値に変換 ■使用例と検算 ■コード全部
【C言語サンプル】
qsort関数の使い方 整数配列、ポインタ配列、構造体配列の並べ替え
■4つの準備 qsortを使うには以下の4つを準備してください。(1)ソート対象の配列(2)配列要素数(3)配列一つのサイズ(4)比較関数 ■整数配列をqsort n1 – n2の引き算の結果で数値順にソート… 続きを読む 【C言語サンプル】
qsort関数の使い方 整数配列、ポインタ配列、構造体配列の並べ替え
【C言語サンプル】
素数の求め方
(剰余演算子%の使い方)
2は偶数だけれど素数 2は偶数だけれど素数なので2の偶数判定をループの外に出すと若干高速になります。
【C言語サンプル】
数字(1)を英語表記の月(January)に変換する方法
■数字の1を英語表記の月Januaryに変換する ■0月を捨てると 月名配列[mon-1]等の-1が不要になります。 ■C99式の指示付きの初期化子を使うと 「間違ってずれて初期化」する危険が減ります。
【C言語サンプル】
大文字小文字変換 (isupperとtolowerの使い方)
■標準ヘッダを使った例(推奨) ctype.hで定義されている標準関数を使うとコードが読みやすくなります。 変換対象が/usr/include/stdio.hのようにアスキーコードだけで記述されている場合このコードで動き… 続きを読む 【C言語サンプル】
大文字小文字変換 (isupperとtolowerの使い方)
【C言語サンプル】
rand乱数生成関数の使い方
(じゃんけんゲーム)
■乱数の種まき ●srand関数による乱数の種まきをしないと何回実行しても同じ結果となる●実務ではrand関数よりrandom関数を使う ■乱数を生成するrand関数の使い方 srand関数を使用して乱数の種を蒔かないと… 続きを読む 【C言語サンプル】
rand乱数生成関数の使い方
(じゃんけんゲーム)
【C言語サンプル】
閏年(うるう年)判定プログラム
warning: suggest parentheses around ‘&&’ within ‘||’ 警告:X&&Y||Zは(X&&Y)||Zと丸括弧を付けて[-Wpa… 続きを読む 【C言語サンプル】
閏年(うるう年)判定プログラム
【C言語】ビットを
立てる x |= (1<<bit);
下げる x &= ~(1<<bit);
何もしない x |= (0<<bit);
■1.次のプログラムは何と表示されますか? ●解答 ■2.ビットの立て方 ■3.ビットの下げ方 ビット演算子チルダ~を使う ■4.何もしない x |= (0<<bit);でbitは立も下がりもしないのでデッド… 続きを読む 【C言語】ビットを
立てる x |= (1<<bit);
下げる x &= ~(1<<bit);
何もしない x |= (0<<bit);
【C言語】エラーを返すscanf関数の戻り値をチェックしよう(あれば便利程度strcpyの戻り値は無視してOK)
warning: ignoring return value of ‘scanf’ declared with attribute ‘warn_unused_result’ 警告:属性’warn_unused… 続きを読む 【C言語】エラーを返すscanf関数の戻り値をチェックしよう(あれば便利程度strcpyの戻り値は無視してOK)
【C言語サンプル】
今時の Hello world!
(C89/90を捨てC99へ移行)
c99仕様のC言語ではmain 末尾の return 0 は書かなくてもOK! C89仕様のC言語:30年以上前の古い仕様 gcc hello.c -Wall -std=c89 でコンパイルするとgccにmain のre… 続きを読む 【C言語サンプル】
今時の Hello world!
(C89/90を捨てC99へ移行)
【C言語】NULLは
【ヌル】ではなく
【ヌルポインタ】と発音しよう
warning: initialization of ‘char’ from ‘void *’ makes integer from pointer without a cast 警告: ‘void *’ で ‘char… 続きを読む 【C言語】NULLは
【ヌル】ではなく
【ヌルポインタ】と発音しよう