5/22(金)〜25(月) の学習ログです(主にC言語)

こんばんは、というか深夜ですね。

いつもありがとうございます、安藤です。

 

24日から生活のスタイルを太陽に合わせようと舵を切りました。

まだ実験段階ですが、まだ馴染まず…(そりゃそうだ)

地道に進めていこうと思っています。

長年の習慣を変えるのは大変だと思いますが、どんな結果になるかを楽しみに挑戦していこうと思います。

 

 朝の散歩は気持ちいいです。睡眠の質も良くなってる気がします。

身体の声を傾聴していきます。

さて、今回もここに学習のログを残します。

 

 

2020.5.22(金) 

C言語(web記事「苦しんで覚えるC言語」)
●文字列を扱う方法
・配列にしてしまう
文字変数の配列を作れば文字列になる。C言語では、文字列の最後に特別な値を記録しておくことで文字数を判定する。
このような文字を「EOS」と呼ぶ。
「‘\0’」がEOSとして扱われる。数値そしては、0にあたる。
EOSは、文字列の終わりを表す記号で、終端文字とも呼ばれる。
End of Stringの頭文字。printf関数では、%s指定子を使って文字列の表示ができる。
EOSを書いた場合は要素数を省略することができる。・文字列の初期化
「” “」で囲んだ文字列を「文字列リテラル」と呼ぶことがある。
文字列リテラルを使うと簡単に文字列の初期化ができる。

# include <stdio.h>

int main(void)
{
 char str[ ]=“MARIO”;
 printf(“%s\“, str);
 return 0;
}

実行結果  「 MARIO 」

 

この方法では、文字列を普通に書くだけでよく、要素数を省略することもできる。
この場合は、要素数は文字列の長さより1つ多く確保されるが、
多めに領域を確保したい場合には、指定することができる。
この方法の問題点は、初期化の時にしか使えないこと。
後から文字列を代入したい場合には、1つ1つ要素に代入するしかない。

int main(void) {
 char str[6];
 str[0]=‘M’;
 str[1]=‘A’;
 str[2]=‘R’;
 str[3]=‘I’;
 str[4]=‘O’;
 str[5]=‘\0’;
 printf(“%s\n”,str);
 return 0;
}

実行結果  「 MARIO 」

 

 

2020.5.23(土) 

今日は全然学習出来なかったです。
夕方に散歩をしたら、なんか身体が喜んでいる感じがしたので続けてみようと思います。
太陽と運動が圧倒的に不足してる。。。

一周回って自己管理ができていない状態に陥っているので、生活を整えることに意識を向けていきたいと思います。

 

 

2020.5.24(日) 
 
C言語(web記事「苦しんで覚えるC言語」)
●文字列処理関数
数値への変換
 
atoi関数は、文字列を数値に変換した結果を代入する。
atoi関数を使うには、sodlib.hを#includeする必要がある。
 
変数=atoi(文字列配列名);
 
atoi関数では、+-のついた符号付きの数字も変換できる。
もし、数字とは関係ない文字列が指定された場合は、0に変換される。
実数に変換する場合には、atoi関数を使用する。
 
 
 
 
2020.5.25(月) 
C言語(web記事「苦しんで覚えるC言語」)
●文字列処理関数
文字列のコピー
strcpy関数を使うと、文字列のコピーを行うことができる。
strcpy関数を使うには、string.hを#includeする必要がある。strcpy(コピー先文字列配列名,コピー元文字列配列名);この関数は、文字列配列同士のコピーに使うのが元々の役割だったが、
実際には、文字列の代入に使われることが多い。先頭から指定された文字数だけをコピーするstrncpy関数もある。strncpy(コピー先文字列配列名,コピー元文字列配列名,コピーする文字数);
コピー先文字列配列名[コピーする文字数]=‘\0’;この関数は、文字数の分だけコピーするので、コピーされた文字列の最後にEOSが入っていないことがある。
そのまま表示させる延々と表示され続けてしまうので、必ずEOSをつけること。・文字列の連結
strcat関数
使用するには、string.hを#includeする必要がある。
strcat(元の文字列が記憶された配列,追加する文字列の記憶された配列);・究極の文字列合成関数
この関数はあらゆる文字列合成に使用できる万能関数。
sprintf関数は、printf関数と同じ機能を持った関数だが、
sprintf関数の場合、結果を配列の中に記憶する。
sprintf関数を使うには、stdio.hを#includeする必要がある。sprintf(結果を記憶する配列,書式文字列,各種変数…);

 

 

今回は以上です。

太陽はとっくに沈んでいるので私も眠りにつこうと思います。

 

次回は金曜日に更新予定です。

では、また!