/*=======================================================================*
* 数字・数字列 から 数値 への変換 2023.8.10 山田俊行 *
*=======================================================================*/
#include <stdio.h>
#include <stdlib.h> /* atoi() */
int main(void) {
char digits[] = { '0', '1', '2', '?', '\0' }; /* 文字配列,文字列 */
char *p;
/* char 型データの値は文字コードを表す小さな整数 */
puts("===== *p =====");
for (p = digits; *p != '\0'; p++)
printf("%d\n", *p); /* %d は値の10進表示 */
/* 文字列は '\0' で終わる char 型データの並び */
puts("========== p ==========");
for (p = digits; *p != '\0'; p++)
printf("%s\n", p); /* %s は文字列の表示 */
/* 数字から数値への変換(数字のコードの連続性を利用) */
puts("========== *p - '0' ==========");
for (p = digits; *p != '\0'; p++)
printf("'%c' -> %d\n", *p, *p - '0'); /* %c は文字の表示 */
/* 数字列から数値への変換(atoi() を利用) */
puts("========== atoi(p) ==========");
for (p = digits; *p != '\0'; p++)
printf("\"%s\" -> %d\n", p, atoi(p));
return 0;
}