スポンサードリンク
HOME > C言語 > 配列を返す方法(文字列含む)

C言語 - 配列を返す方法(文字列含む)

このページは、ポインタと配列の関係配列を渡す方法(文字列含む)
static - 静的変数 を読んでおくと
理解しやすくなります。

配列を返すと言う処理は、やる機会が少ないと思いますが、
方法は覚えておきましょう。

配列を返すには、配列の先頭アドレスを返してやります。

#include <stdio.h>

int* hikaku(int* data1, int* data2);

void main(void) {
   int a[3] = { 5, 15, 25};
   int b[3] = {10, 20, 30};
   int* ip;
   int i, goukei = 0;

   // 数値合計が一番大きい配列を選定
   ip = hikaku(a, b);

   for (i=0; i<3; i++) {
      goukei = goukei + *(ip+i);
   }
   printf("%d\n", goukei);
}

int* hikaku(int* data1, int* data2) {
   int g1=0, g2=0;

   // 配列の合計を求める
   for (i=0; i<3; i++) {
      g1 = g1 + *(data1+i);
      g2 = g2 + *(data2+i);
   }

   // 合計が大きい方の配列を返す
   if (g1 > g2) {
      return data1;
   } else {
      return data2;
   }
}


このプログラムは、2つの配列の数値合計が多い方を選定し、

その合計を表示するプログラムです。

hikaku 関数でどちらの配列が大きいか比べてもらい、

数値合計が大きい方の配列を返しています。



文字列を返す事もできます。

#include <stdio.h>

char* kakou(char* cp);

void main(void) {
   char* ss;

   ss = kakou("star");

   printf("%s\n", ss);
}

char* kakou(char* cp) {
   static char str[80];
   int i=0;

   str[i] = '-';
   i++;
   while (*cp) {
      str[i] = *cp;
      cp++;
      i++;
   }

   str[i] = '-';
   i++;
   str[i] = '\0';

   return str;
}


関数 kakou は、
渡された文字列の両端にハイフン(-)を付加し、先頭アドレスを返しています。



スポンサードリンク







HOME

言語解説編
プログラミング用語・知識

C言語

C++言語

Java

C#

Visual Basic.NET

アプリケーション編
C言語による
コンソールプログラミング




Copyright (C) プログラミングランド All Rights Reserved