今日は調子がいいんでもう一本いってみよー
はい!
というわけでもう一本C言語の実験についてお話したいと思います
今回のテーマはcahr(キャラ)型が記憶できる文字変数の上限についてです
まずは下記ソースをご覧ください
/*こっからソース*/
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
char str[] = "145";
int suuti = atoi(str);
printf("%d\n",suuti);
return 0;
}
苦より
実行結果
145
今回はatoi関数を使うのに必要な擬似命令<stdlib.h>を
インクルードしています
ふーん・・・
なんとなくatoi関数の特徴はわかりました
ちなみにatoiのiはint型から来ているようですその証拠にatoiのiをfに変えると
実数でも変換が可能になります
ですがここでひとつ面白実験をしてみたいと思いました
数字の145をatoi関数で数値に変換しているのであれば
この145の数字(文字変数)をそのまま数値として代入させて表示してやると
どのような結果になるのだろうか?
ということです(注意*本当はやってはいけません)
以下実験
#include<stdio.h>
#include<stdlib.h>/*ぶっちゃけ今回これいりません*/
int main(void)
{
char str[]="145";
int suuti=str[0];
printf("%d\n",suuti);
fflush(stdin);
getchar();
return 0;
}
実行結果
49
あらららら・・・
入力した数字がそのまま表示されませんでしたね
これで一つわかりました
この49と言う数値は145の1だけの数値だということです
なぜなら文字コードでいえば0は48・・・
となると1は49です
つまりchar(キャラ)型には記憶できる文字変数は1つだけ
ということです
C言語には文字列を記憶できる変数はありません
ですが文字変数となれば記憶できるということを
体現した実験でした