auの日記

プログラミング初心者の日記。(auはハンドルネームです)

C言語

きのうのプログラムをポインタを使って実装した

auです。 今回はきのうのプログラムをポインタを使用して実装しました。 #include <stdio.h> int main(void) { int slide = 0; int over = 0; char word[128]; char n_word[128]; char all_word[] = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"; char *p</stdio.h>…

文字を暗号化するプログラム

auです。 今回はアルファベットを入力して、数字を入力するとその分だけ→にずれるプログラムを組みました。 #include <stdio.h> int main(void) { int slide = 0; int over = 0; char ch[128]; char word[128]; char n_word[128]; char all_word[] = "abcdefghijklmno</stdio.h>…

きのうのプログラムを修正してみた

auです。 今回はきのうのプログラムを修正しました。 #include <stdio.h> #include <string.h> int main(void) { char s_word[] = "abcdefghijklmnopqrstupvwxyz"; char b_word[] = "ABCDEFGHIJKLMNOPQRSTUPVWXYZ"; char word[30]; char n_word[30]; int number = 0; printf("大</string.h></stdio.h>…

小文字を入力すると大文字で返してくれるプログラム

auです。 今回は小文字を入力すると大文字で返してくれるプログラムを組みました。 #include <stdio.h> #include <string.h> int main(void) { char s_word[] = "abcdefghijklmnopqrstupvwxyz"; char b_word[] = "ABCDEFGHIJKLMNOPQRSTUPVWXYZ"; char word[126]; char n_word[12</string.h></stdio.h>…

C言語のgets関数を使う

auです。 色々なサイトを見た際にgets関数を使っているところが多かったので調べてみました。 gets関数 gets関数は標準入力を受け付ける関数です。gets関数を利用すると1行の文がそのまま格納されます。他にはscanfなどもあります。gets関数に対してscanfは…

商品名と値段と数量を出すプログラム

auです。 今日もプログラムを組みました。 この前のように商品番号と数量を求められるので入力し、最後に値段を出してくれるプログラムを組みました。 #include <stdio.h> #include <string.h> int main(void) { int num = 0; int num_t[] = {1, 2, 3, 4, 5, 99}; int qua; char</string.h></stdio.h>…

きのうのプログラムを修正しようとした

auです。 今回はきのうのプログラムを修正して該当のidがなかった場合に「該当するidは存在しませんでした」と表記するプログラムを組んでみました。 #include <stdio.h> #include <string.h> int main(void) { int student_id = 0; int student_id_t[] = {1, 2, 3, 4, 5}; char</string.h></stdio.h>…

idから名前を検索するプログラム

auです。 今回はC言語でidを打つとそれに対応した名前を出力するプログラムを組みました。 #include <stdio.h> #include <string.h> int main(void) { int student_id = 0; int student_id_t[] = {1, 2, 3, 4, 5}; char student_name[10]; char student_name_t[][10] = {"Sato",</string.h></stdio.h>…

条件付きコンパイルについて

auです。 今回は条件付きコンパイルについて調べました。 条件付きコンパイルとは 条件付きコンパイルは、条件を満たす(真)のときだけコンパイルし、条件が満たされない(偽)の場合はコンパイルをしないようにするようにすることです。 #if 定数式1 定数…

C言語のインクルードガードとは

auです。 今回はインクルードガードについて調べました。 インクルードガードとは インクルードガードとはヘッダーファイルを何回もインクルードする(2重コンパイル)と、エラーの原因になります。それを回避するためにインクルードガードを付けます。大きな…

C言語でtest.txtをプログラム上で開かずに出力する

auです。 今回はファイルをプログラム上では開かずに出力してみます。 ファイルをプログラム上で開かないとは FILE *fp; fopen fclose を使わないということです。 どうするのかというと、"catコマンド"というコマンドを使います。 catコマンドはLinuxに上で…

C言語でstdoutを使って出力先を変更する

auです。 今回はstdout(標準出力)を使って出力先を変更します。 stdoutとは stdoutとは、標準出力のことです。 標準出力とは、モニターなどのディスプレイに書き込みを要求することで、ディスプレイにデータを表示することができることです。 #include <stdio.h> int </stdio.h>…

ストリームとは

auです。 stdinについて調べていたら「ストリーム」という単語がでてきて、よくわからなかったので調べてみました。 ストリームとは プログラムからみたファイルなどのデータの入出力の「流れ」の経路をストリームといいます。 C言語に限った話ではなく、い…

C言語のstdinとは

auです。 今回は、stdinについて調べました。 stdinとは stdinはヘッダーファイル"stdio.h"で使用することができます。 特に何も指定が無い場合キーボードからの標準入力を受け取ることができる標準ストリームです。 #include <stdio.h> int main(void) { char ch[30]</stdio.h>…

C言語のEOFとは

auです。 今回はEOFというワードについて調べました。 EOFとは EOFとは、End Of Fileの略称で、ファイルの終わりに着きましたよという意味です。 ファイルを1文字ずつ読み込み、読み込む文字がなくなった場合EOFとなります。 "feof関数"はEOFであるかの状態…

C言語でperror関数を使う

auです。 今回は、C言語の関数のperrorを使います。 perror関数とは ヘッダーファイル"stdio.h"で使用することができます。 使い方: エラーが発生する場所で使います。 perror(文字列); perrorの処理が実行されると「文字列: エラーメッセージ」で表示されま…

C言語でtest.txtのファイルに内容を書き込む

auです。 きのうはファイルに入っている文字をコンソール上に出力しました。 program-shoshinsya.hatenablog.com今回は、test.txtに文字を書き込みます。 test.txtの内容はなし 書き込むためにh、fopen関数を書き込みモードにします fopen("test.txt", "w")…

C言語でtest.txtの内容を出力する

auです。 昨日はファイルを開くところまでやりました。 program-shoshinsya.hatenablog.com 今回は、実際にtest.txtに入ってる内容を出力します。 test.txtの内容: Hello World! 出力するには、"fread関数"を使います #include <stdio.h> int main(void) { FILE *fp; </stdio.h>…

C言語でテキストファイルを開く

auです。 今回は、C言語を使ってファイル名"test.txt"を開きます。 まずは、ファイルを開くための関数"fopen"を使います。 fopenを使う fopenを使うには以下のようにします。 fopen("ファイル名", "r"); と書きます。第2引数の"r"は読み込みモードを表します…

オーバーヘッドとは

auです。 今回はオーバーヘッドという用語について調べました。 オーバーヘッドとは オーバーヘッドは、余分に必要な処理時間のことです。 Aというプログラムがあり、処理時間は10分かかります。ですが、Bという処理をしなければAというプログラムを安全に動…

printfで出力される文字や背景に色を付ける

auです。 デザイン系の授業のことを勉強していて、C言語でも色を付けることができるのではないかと調べてみました。 エスケープシーケンスを使うことで色の変更や、文字の強調などができます。 printf("\x1b[41m<RED>Hello\x1b[m\n"); // x1bは16進数のためx33と8</red>…

C言語のプログラムをアセンブリ言語で表示する

auです。 今回はC言語をアセンブリ言語にしてみてみました。 コンパイルする際に"gcc -S ファイル名.c"をする。これでファイル名.sというファイルができ、その中にアセンブリ語で書かれたファイルが完成します。 その際に最適化を適応することでコードを短く…

C言語でマクロを使う

auです。 今回は"マクロ"について調べました。 マクロとは マクロとは、自分が定義した文字列を"置き換える"ことができる処理のことです。 defineを使って文字列の置き換えができます。他にも、if defineをつかって条件をつけたマクロを定義することもできま…

C言語のscanf関数でスペースが入っている文字を出力する

auです。 今回はscanf関数でスペースの入った文字を出力してみます。 普通に書こうとすると以下のようになると思います。 #include <stdio.h> int main(void) { char c[30]; printf("Please write words\n"); scanf("%s", c); printf("c = %s\n", c); printf("Please </stdio.h>…

C言語のcontinue文の飛ぶ先

auです。 前回はbreak文の飛ぶ先について書きました。 今回はcotinue文の飛ぶ先について書きたいと思います。 continue文の飛ぶ先 cotinue文はfor文やwhile文のループの中でよく見かけます。continue文が処理されると、それ以下のループの内容は処理せずに、…

C言語のbreak文の飛ぶ先

auです。 今回はループなどの処理を終わりにする"break文"について書こうと思います。 break文の飛ぶ先 C言語を使っていて"break"を使う場合は今はまだ2つしか知りません。それは、「for文、while文のbreak」と「switch、case文のbreak」です。 実際にコード…

C言語で関数ポインタの配列

auです。 今回は関数ポインタを配列で呼び出す関数を変えてみたいと思います。 宣言方法 宣言方法は関数ポインタ名の後ろに配列をつけるだけです。 戻り値の型 (*関数ポインタ名[配列数])(引数の型1, 引数の型2...); これで宣言できます。 実際に使ってみる …

C言語の関数ポインタ

auです。 今回は関数ポインタについて調べました。 関数ポインタとは 関数ポインタとは、関数アドレスを格納するためのポインタ変数のことです。 変数ポインタは以前触れました。それの関数バージョンです。 関数ポインタを宣言する 戻り値の型 (*関数ポイン…

C言語のmath.hをコンパイルする

auです。 今回はヘッダファイルの"stdio.h"や”string.h”をコンパイルする際にオプションはいらないのに、"math.h"をコンパイルする際は"-lm"を付けなければならないのかを調べてみました。 math.hを使う math.h(数学関数)の中には double pow(double x, doub…

C言語の列挙型

auです。 今回は列挙型を扱う"enum"について調べてみました。 列挙型とは 例えば、月曜日~日曜日までがあったとします。 enum week {Mon, Tue, Wed, Thu, Fri, Sat, Sun}; 月曜日を0、日曜日が7になるように、それぞれに整数値が振られていきます。 #include <stdio.h></stdio.h>…