掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
フィールド幅 (ID:59656)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
> char *input; > scanf("%s", input); ポインタの理解が足りないようですね。 ポインタとはどこかの領域を指し示すものです。 char* input; とすると、input と領域が結びついていません。 (初期化していないので変な値が入っていて、その指し示す領域が正しいかどうか保障されていな状態) 普通は char str[ 20 ]; char* input = str; のようにinputはchar型配列strの領域を指しているという風にしないといけません。 もっとも、 char str[ 20 ]; scanf( "%s", str ); で文字列が取得できますが。 scanfを使う以上固定の領域のchar型配列が必要になります。 何文字の文字列を入力されるか分からない以上、ぴったしの領域に入れさせることは不可能です。 ついでに、 > strlen("input"); は文字列 input の文字列長 すなわち 必ず 5になります。 サンプル) #include <string.h> #include <stdio.h> int main( void ) { char input[ 64 ]; /* 最大63文字入力できる */ int len; scanf( "%s", input ); len = strlen( input ); printf( "%sの文字数は%dです。\n", input, len ); return 0; }
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.