こんばんはマイメロ

お久しぶりですっ!ドキドキ

 

二回目のブログ更新です。今回はポインタを利用したプログラムを作りました。

以下にソースコードと実行結果を載せます。

 

---------------------------------------------------------------------

 

1.文字列コピー関数str_copy:ポインタを用いて作成する。

#include <stdio.h>

void str_copy( char *dst, char *src);

int main (void)

{

              char city1[20] = "Nagano";

              char city2[20];

              str_copy( city2, city1 ); /* 2つの文字列の先頭アドレスを引数とする。 */

              printf("city1 = %s\n", city1);

              printf("city2 = %s\n", city2);

              return 0;

}

 

void str_copy( char *dst, char *src){

              int i;

              for(i=0; src[i]!='\0';i++) /*NULLまで値を増やす*/

              {

                            dst[i]=src[i];    /*一文字ずつコピーする*/

              }

              dst[i]='\0';          /*文字列の最後にNULLを加える*/

              return *dst,*src;

}

 

・実行結果

 

2.文字列長さ関数str_length:ポインタを用いて作成する。

#include <stdio.h>

int str_length(char *str);

 

int main (void){

              char city1[20] = "Nagano";

              char city2[20] = "Niigata";

              printf("city1 = %s, length = %d\n", city1, str_length(city1));

    printf("city2 = %s, length = %d\n", city2, str_length(city2));

              return 0;

}

 

int str_length(char *str){

              int i;

              for(i=0;str[i]!='\0';i++); /*NULLまで値を増やす*/

              return i;                  /*iを長さの値として返す*/

}

 

・実行結果

 

3.文字列連結関数str_cat:ポインタを用いて作成する。

#include <stdio.h>

void str_cat( char *dst, char *src); /*dst&src→dst*/

 

int main (void){

           char city1[20] = "Nagano";

           char city2[20] = "Niigata";

           str_cat( city1, city2 ); /* 2つの文字列の先頭アドレスを引数とする。 */

           printf("city1 = %s\n", city1);

           printf("city2 = %s\n", city2);

           return 0;

}

 

void str_cat( char *dst, char *src){

           int i,j;

           for(i=0;dst[i]!='\0';i++);     /*NULLまで値を増やす*/

           for(j=0;src[j]!='\0';j++,i++){ 

                         dst[i] = src[j];      /*dstの文字列の後にsrcを一文字ずつコピーする*/

           }

           dst[i] = '\0';       /*文字列の最後にNULLを加える*/

}

 

・実行結果

 

4.文字列交換関数str_swap:ポインタを用いて作成する。

#include <stdio.h>

void str_swap ( char *dst, char *src);/*dst⇔src*/

 

int main (void) {

       char city1[20] = "Nagano";

       char city2[20] = "Niigata";

       str_swap( city2, city1 ); /* 2つの文字列の先頭アドレスを引数とする。 */

       printf("city1 = %s\n", city1);

       printf("city2 = %s\n", city2);

       return 0;

}

 

void str_swap ( char *dst, char *src){

       int i,z;

       for(i=0;i<20;i++)

       {

                     z = dst[i];

                     dst[i] = src[i];

                     src[i] = z;

       }

}

 

・実行結果

 

ポインタは今までやったことの中でも特に難しく、なかなか理解するのが大変でした。使いこなせるようになれば、コンピュータで様々なことが出来そうなので頑張っていきたいと思います。

 4個とも引数にポインタを使っているので、基本は似たようなプログラムだと思います。一個目ができた後は割と早く残りの3つが出来ました。

 

---------------------------------------------------------------------

 

寒いとキーボードを打つ手もかじかんできますね寒いブルブル

 

今回はここまでです。コメントくださるとありがたいですお願いペコりんこWハート

 

またねっバイバイ