• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:プログラミング(ポインタ/文字列処理)を教えて下さい)

プログラミング(ポインタ/文字列処理)の関数での書き方

このQ&Aのポイント
  • プログラミング(ポインタ/文字列処理)に関する関数の書き方を教えてください。
  • 英単語を*が現れるまで1つずつ読み込み、文字数を計算して表示するプログラムを関数で作成する方法を教えてください。
  • ポインタ変数を使用したプログラムを関数で作成する方法を教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • kmee
  • ベストアンサー率55% (1857/3366)
回答No.1

あなたも、普段から関数をたくさん使ってますよね? mainもscanfもprintfも関数です。 定義のしかたは、main関数のものと同様です。 戻り値の型 関数名(引数の型1 引数を受け取る変数名1,引数の型2 引数を受け取る変数名2...){ 関数の本体 return 戻り値 } 使い方は、scanfやprintfのような感じで 関数名(引数1,引数2...) です。戻り値を 変数に代入したり、式の中で使ったりできます。 注意点として、Cではファイルの登場順にコンパイルするので、関数を使う前に、関数を宣言しておく必要があります。 (プロトタイプ宣言といいます) /* 最後の)の後が ; で終ってることに注意 */ 戻り値の型 関数名(引数の型1 引数を受け取る変数名1,引数の型2 引数を受け取る変数名2...) ; int main(void){ .... } おまじないのように書いている #include <stdio.h>などには、このような関数の宣言がたくさん記述されています。 そのおかげで、printf等が利用できるのです。 あるいは、本体を含めた定義を 使う前に書いてしまいます。 戻り値の型 関数名(引数の型1 引数を受け取る変数名1,引数の型2 引数を受け取る変数名2...) { 関数の定義 } int main(void){ .... } あとは、関数の仕様を決めることです。 なにを引数にして、どんな動作をして、何をreturnするのか、を決めなければ関数は作れません。 例えば、ものすごい極端な例です #include<stdio.h> int main_no_kawari(void) { char mojiretu[15]; int con[15]={0},i,j; printf("課題データ\n"); scanf("%s",mojiretu); while(mojiretu[0]!='*') { for(j=0;mojiretu[j]!='\0'j++) {} con[j-1]++; scanf("%s",mojiretu); } printf("文字数\t出現回数\n") for(i=0;i<=14;i++) printf("%d\t%d\n",i+1,con[i]); return 0; } int main(void) { return main_no_kawari(); } これも、書かれている仕様を満すプログラムです。 まあ、普通に考えたら、引数に文字列を指定して、戻り値が文字列長の関数を作成して、mainで読み込んだ文字列を関数に渡して文字数を貰う、というものでしょうね。

freezeb
質問者

お礼

なんとなく分かった気がします。ありがとうございました。

関連するQ&A