2 文字列コピー関数

教科書 [1]のp.256-268には,文字列を処理する次のよ うなユーザー定義関数を示して,その作成方法を記述している. -4pt

これらのうち,str_cpy()を例にして,文字列の取り扱い方を説明する.他は,説明の 時間がないので,各自,教科書を読んで理解せよ.

教科書と同じ関数だと面白くない2.そこで,リスト1のように,関数my_str_cpy() 3と いう関数を作成した.これは,文字列をコピーして,コピーしたバイト数-- \0を含まない--を返す関数である.プログラムの内容は,これま でに学習した範囲で理解できるはずである.大事な点は,以下の通り. -4pt


   1 #include <stdio.h>
   2 
   3 int my_str_cpy(char dest[], char src[]);
   4 //==================================================
   5 // メイン関数
   6 //==================================================
   7 int main(void){
   8   char foo[30]="おもろいことないかー";
   9   char hoge[30], fuga[30];
  10   int a, b;
  11 
  12   a=my_str_cpy(hoge, foo);
  13   b=my_str_cpy(fuga, "情報処理が,ぼちぼちやでー");
  14   printf("%dバイトコピー\t%s\n", a, hoge);
  15   printf("%dバイトコピー\t%s\n", b, fuga);
  16 
  17   return 0;
  18 }
  19 
  20 //==================================================
  21 // 文字列のコピー関数
  22 //==================================================
  23 int my_str_cpy(char dest[], char src[])
  24 {
  25   int i=0;
  26 
  27   while(src[i]!='\0'){
  28     dest[i] = src[i];
  29     i++;
  30   }
  31  
  32   dest[i]='\0';
  33 
  34   return i;
  35 }


\fbox{実行結果}
20バイトコピー  おもろいことないかー
26バイトコピー  情報処理が,ぼちぼちやでー



ホームページ: Yamamoto's laboratory
著者: 山本昌志
Yamamoto Masashi
平成19年1月26日


no counter