【掲示板ご利用上の注意】

 ※題名は具体的に!
 ※学校の課題の丸投げ禁止!
 ※ソースの添付は「HTML変換ツール」で字下げ!
 ※返信の引用は最小限に!
 ※環境(OSとコンパイラ)や症状は具体的に詳しく!
 ※マルチポスト(多重投稿)は謹んで!

 詳しくはこちら



 本当はこんなに大きく書きたくはないのですが、なかなか守っていただけなくて…。
 守ってくださいね。お願いします。(by管理人)

C言語ソース⇒HTML形式ツール   掲示板2こちら


管理者用メニュー    ツリーに戻る    携帯用URL    ホームページ    ログ    タグ一覧

No.18420

文字数を調べるプログラム
投稿者---??(2004/11/27 17:16:17)


次のプログラムの書き方が分かりません。
分かる方、教えてください。

main部
1)大きさが256の文字配列moji、文字数を入れる整数型の変数cntを宣  言する。
2)“空白を入れずに英数字で文字列を入力してください。”と表示し、   配列mojiに文字列を読込む。
3)配列mojiの先頭アドレスを引数として、関数my_strlenを呼び出し、戻  り値をcntに代入する。
4)“入力された文字列○○○の文字数は ○ です”と表示する。

my_strlen部
1)引数を文字型へのポインタpとして使う。
2)文字数を数えるために、関数内部で使う整数型の変数cntを宣言し、0  で初期化しておく。
3)while文を使い、文字列終端記号が見つかるまでポインタpとcntのイン  クリメントを行い文字数を数える。
4)cntを戻り値とする。



この投稿にコメントする

削除パスワード

発言に関する情報 題名 投稿番号 投稿者名 投稿日時
<子記事> Re:文字数を調べるプログラム 18421 shu 2004/11/27 17:18:04
<子記事> Re:文字数を調べるプログラム 18428 monkey 2004/11/27 19:20:30


No.18421

Re:文字数を調べるプログラム
投稿者---shu(2004/11/27 17:18:04)


>main部
>1)大きさが256の文字配列moji、文字数を入れる整数型の変数cntを宣  言する。
>2)“空白を入れずに英数字で文字列を入力してください。”と表示し、   配列mojiに文字列を読込む。
>3)配列mojiの先頭アドレスを引数として、関数my_strlenを呼び出し、戻  り値をcntに代入する。
>4)“入力された文字列○○○の文字数は ○ です”と表示する。
>
>my_strlen部
>1)引数を文字型へのポインタpとして使う。
>2)文字数を数えるために、関数内部で使う整数型の変数cntを宣言し、0  で初期化しておく。
>3)while文を使い、文字列終端記号が見つかるまでポインタpとcntのイン  クリメントを行い文字数を数える。
>4)cntを戻り値とする。

あなたの投稿した内容が『書きかた』です。


この投稿にコメントする

削除パスワード

No.18425

Re:文字数を調べるプログラム
投稿者---??(2004/11/27 18:36:33)


”あなたの投稿した内容が『書きかた』です。”って何の事ですか?
これをどうやって書くか知りたいんです。



この投稿にコメントする

削除パスワード

No.18432

Re:文字数を調べるプログラム
投稿者---Hermit(2004/11/27 21:41:45)


>”あなたの投稿した内容が『書きかた』です。”って何の事ですか?
>これをどうやって書くか知りたいんです。

エディターで、プログラムコードを入力していきます。

ここでは、
※学校の課題の丸投げ禁止!
となっているので、そのように受け止められる書き込みに
素直に答えてくれる人はいないと思いますが。

また、学校の課題でなくても、丸投げに近いものは
敬遠されがちです。

monkeyさんのサンプルを参考に、自分で書いてみてください。
それでもわからなかったら、もうちょっと的を絞ってから、
かかれた方がいいと思います。


この投稿にコメントする

削除パスワード

No.18428

Re:文字数を調べるプログラム
投稿者---monkey(2004/11/27 19:20:30)


途中まで書いてみました。
この要領で、残りの部分(my_strlen関数定義)にチャレンジしてください。
どうしてもわからないところがありましたら、そこにしぼってご質問ください。

#include <stdio.h>

int my_strlen( const char* p );

// main部
int main( void )
{
    // 1)大きさが256の文字配列moji、文字数を入れる整数型の変数cntを宣言する。
    char moji[256]; // 大きさが256の文字配列
    int  cnt;       // 文字数を入れる整数型変数

    // 2)“空白を入れずに英数字で文字列を入力してください。”と表示し、
    puts( "空白を入れずに英数字で文字列を入力してください。" );

    // 配列mojiに文字列を読込む。
    scanf( "%s", moji );

    // 3)配列mojiの先頭アドレスを引数として、関数my_strlenを呼び出し、戻り値をcntに代入する。
    cnt = my_strlen( moji );

    // 4)“入力された文字列○○○の文字数は ○ です”と表示する。
    printf( "入力された文字列「%s」の文字数は %d です", moji, cnt );

    return 0;
}


// my_strlen部
// 1)引数を文字型へのポインタpとして使う。
int my_strlen( const char* p )
{
    // 2)文字数を数えるために、関数内部で使う整数型の変数cntを宣言し、0で初期化しておく。
    // 3)while文を使い、文字列終端記号が見つかるまでポインタpとcntのインクリメントを行い文字数を数える。
    // 4)cntを戻り値とする。
}



この投稿にコメントする

削除パスワード

No.18429

Re:文字数を調べるプログラム
投稿者---もぐりん(2004/11/27 19:51:36)


ここだけ。

// my_strlen部
// 1)引数を文字型へのポインタpとして使う。
int my_strlen( const char* p )
{
// 2)文字数を数えるために、関数内部で使う整数型の変数cntを宣言し、0で初期化しておく。
// 3)while文を使い、文字列終端記号が見つかるまでポインタpとcntのインクリメントを行い文字数を数える。
// 4)cntを戻り値とする。
}</pre>

char型の配列の場合、strlen関数を使えば、文字数は確認できる。
whileループは使わなくてもできる。

cnt = strlen(p);

でいいのでは?
C言語の書籍で勉強したほうがいいでしょう。


この投稿にコメントする

削除パスワード

No.18430

Re:文字数を調べるプログラム
投稿者---monkey(2004/11/27 20:03:13)


>char型の配列の場合、strlen関数を使えば、文字数は確認できる。
>whileループは使わなくてもできる。
>cnt = strlen(p);
>でいいのでは?

実用上はそのとおりなのですが、敢えてライブラリ関数の"strlen"を使わずに文字数を数える関数を自作することにより、文字列の本質、ポインタの使い方、while文の制御構造などの理解を深めようというのがこの練習問題の意図なのではないでしょうか。


この投稿にコメントする

削除パスワード

No.18433

Re:文字数を調べるプログラム
投稿者---??(2004/11/28 00:12:31)


monkyさん、どうもありがとうございました。
参考にやってみたら、出来ました。


この投稿にコメントする

削除パスワード

管理者用メニュー    ツリーに戻る    携帯用URL    ホームページ    ログ    タグ一覧