落書きノート

ふと自分が気になった事を書いてます

C言語で問題を解く

解きながら学ぶC言語

解きながら学ぶC言語

// q10-9
#include <stdio.h>
#include <stdlib.h>

void set_value(int *n) {
  int i;
  for(i = 0; i < 3; i++)
    *(n + i) = i + 1;
}

int main(void) {
  int *p;
  p = calloc(5, sizeof(int));
  set_value(p);
  int i;
  for(i = 0; i < 5; i++)
    printf("ary[%d] = %d\n", i, i[p]);
  return 0;
}

// q11-1
#include <stdio.h>
#include <stdlib.h>

int main(void) {
  char str[] = "ARY";
  char *ptr;
  ptr = calloc(3, sizeof(char));
  ptr = "PTR";
  printf("%s\n", str);
  printf("%s\n", ptr);
  printf("str = \"%s\"\n", str);
  printf("ptr = \"%s\"\n", ptr);
  return 0;
}

// q11-2
#include <stdio.h>

int main(void) {
  char st[3][10] = {
    "LISP",
    "C",
    "Ada"
  };
  char *pt[3] = {
    "ABCD",
    "A",
    "ABC"
  };
  int i;
  for(i = 0; i < 3; i++)
    printf("st[%d] = \"%s\"\n", i, i[st]);
  for(i = 0; i < 3; i++)
    printf("pt[%d] = \"%s\"\n", i, *(pt + i));
  return 0;
}

// q11-3
#include <stdio.h>
#include <stdlib.h>

void put_string(char *t) {
  printf("%s\n", t);
}

int main(void) {
  char *t;
  t = calloc(20, sizeof(char));
  printf("文字列を入力してください : ");
  scanf("%s", t);
  put_string(t);
  return 0;
}

// q11-4
#include <stdio.h>
#include <stdlib.h>

char *str_chr(const char *str, int c) {
  while(*str != c && *str != '\0')
    str++;
  return *str != '\0' ? (char *)str : NULL;
}

int main(void) {
  char *ch;
  char *str = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
  ch = calloc(10, sizeof(char));
  printf("英大文字を入力してください : ");
  scanf("%s", ch);
  char *p = str_chr(str, 0[ch]);
  if(p != NULL)
    printf("%s\n", p);
  return 0;
}