dポイントプレゼントキャンペーン実施中!

01番の二次元配列でこの実行結果出すプログラムはどうなりますか?

「01番の二次元配列でこの実行結果出すプロ」の質問画像

A 回答 (4件)

スペースコードの一部を漢字のスペースにしてあります。


コピペするときは気を付けてください。

#include <stdlib.h>
#include <unistd.h>
#include <stdio.h>
#include <ctype.h>

#define LENGTH 150

static void read_file (FILE * fp, char * str, int size);
static void replace_str (char * str, char target);

int
main (int argc, char * argv[])
{
 FILE * fp;
 char buff[4];
 char str[LENGTH];

 if ((fp = fopen ("She.txt", "rb")) == NULL)
 {
  printf ("ファイルがオープンできません\n");
  exit (1);
 }

 read_file (fp, str, sizeof (str));

 printf ("変換対象文字 --> ");
 if (fgets (buff, sizeof (buff), stdin) == NULL)
 {
  printf ("入力エラーです\n");
  exit (1);
 }

 if (! isalpha(buff[0]))
 {
  printf ("アルファベットを入力してください\n");
  exit (1);
 }

 replace_str (str, buff[0]);

 printf ("%s\n", str);

 exit (0);
}

static void
read_file (FILE * fp, char * str, int size)
{
 int i;
 int c;

 for (i = 0; i < (size - 1) && (c = fgetc (fp)) != EOF; i++)
  *(str + i) = c;
 *(str + i) = '\0';

 return;
}

static void
replace_str (char * str, char target)
{
 char c;
 int i;

 for (i = 0; (c = *(str + i)) != '\0'; i++)
 {
  if (c == target)
   *(str + i) = '*';
 }

 return;
}
    • good
    • 0

// 0701.c



#include <stdio.h>

#define LEN 150

char read(void);
char* eval(char assinged, FILE* fp);

int main(int argc, char** argv) {
 FILE* fp;
 char* fname = argv[1];

 fp = fopen(fname, "r");
 if (fp == NULL) {
  printf("%sが「くぱぁ」しません\n", fname);
  return -1;
 }
 printf("%s\n", eval(read(), fp));

 fclose(fp);
 return 0;
}

char read(void) {
 static char input[LEN];
 fputs("変換対象文字 --> ", stdout);
 fgets(input, LEN, stdin);
 return input[0];
}

char* eval(char assinged, FILE* fp) {
 static char str[LEN];
 int c;
 int i = 0;
 while((c = fgetc(fp)) != EOF) {
  if (c == assinged)
   str[i] = '*';
  else
   str[i] = c;
  i++;
 }
 return str;
}

// 0702.c

#include <stdio.h>
#include <ctype.h>

int main(int argc, char** argv) {
 FILE* fp;
 char* fname = argv[1];
 int ch;

 fp = fopen(fname, "r");
 if (fp == NULL) {
  printf("%sが「くぱぁ」しません\n", fname);
  return -1;
 }

 while ((ch = fgetc(fp)) != EOF) {
  printf("%c", toupper(ch));
}

 printf("\n");

 return 0;
}
    • good
    • 0

あなたは自分の力でどこまでやったのですか?

    • good
    • 3

……問題文をよく読んでください。

どこに二次元配列を使うように書かれていますか?
    • good
    • 0
この回答へのお礼

あ、使わないですか。。
そしたらどんな風になりますか?

お礼日時:2016/07/06 22:21

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!