C言語の文字列、ポインタについて学ぶために、文字列の長さを返すstrlen関数を自作してみました。 実際にライブラリにあるstrlen関数と同じふるまいをします。
自作のmy_strlen関数(my_strlen)
#include<stdio.h> unsigned int my_strlen(const char* str){ unsigned int length = 0; // (1)文字列の長さを入れる箱 // (2)文字列の長さを数える while(*str++ != '¥0'){ length++; } return length; }
main関数
#include<stdio.h> int main(void){ char str[] = "Tokyo"; printf("%d¥n", my_strlen(str) ); return 0; }
これだけなんですが、少しだけ勉強したことを補足します。
(1)文字列の長さを入れる箱
なぜintでなくてunsigned intなのか?
それは、取れる値の幅が関係してきます。値の取れる範囲は、
int -32768~32767
unsigned int 0~65535
です。
つまり、今計算したいのは「文字数」なので、マイナスになることはない。
なのでここで適切なのはunsigned intだということです。
(2)文字列の長さを数える
文字列の最後には'¥0'が入っています。なので、str != '¥0' が成り立つまでループを繰り返すことで、文字列の最後まで確認することができます。
また、引数はcharのポインタ型なので、*str++ とすることで、次の文字を見にいくことができます。
C言語で最初に直面する壁は文字列とポインタかと思います。大変ですが重要な基礎の部分なので、色々試してしっかり理解していきたいと思います。
Casino Poker - Blackjack and Craps with High Card
返信削除A high-stakes, 썬 시티 21 card poker game is a combination of single 룰렛 만들기 or multiple bets. There are two types of single 강원 랜드 쪽박 걸 가격 bets in a casino: 라이브바카라 one 탱글다희 영구정지 standard