2: http://www7.bpe.es.osaka-u.ac.jp/~kota/classes/jse.html kota@fbs.osaka-u.ac.jp
10
: 0 1 2 n 2 n 0 1 1 0 1 0 0 1 (2) = 105 1 = 8 1 2 8 = 256 0 9 105 i 106 j 256 2 1
#include <stdio.h> int main(void) { printf( Hello, world!\n ); 105 i return 0; i vs 105 Beeworks/SUCCESS 23696E636C756465203C73 7464696F2E683E0A0A696E 742061696E28766F696429 0A7B0A097072696E746628 2248656C6F2C20776F726C 64215C6E22293B0A0A0972 657475726E203B0A7D0A 0x69 = 105 = 01101001(2) 16 od -tx1 od -tx1c 16
Shift Shift JIS 0x82A0 EUC- JP 0xA4A2 UTF- 8 0xE38182 JIS 0x82A1 EUC- JP 0xA4A3 UTF- 8 0xE38183 Shift JIS EUC- JP UTF- 8 0x82A2 0xA4A4 0xE38184
Shift JIS 0x8140 EUC- JP 0xA1A1 UTF- 8 0xE38080 Beeworks/SUCCESS 0xE3 = 227 = 343 (8) 0x80 = 128 = 200 (8)
C char 8 8 short 2chars 16 long 4chars 32 long long 8chars 64 short long long long n n- 1 n- 1 n- 1-2 ( - 2 +1) 2-1 n 0 2-1 int short long char unsigned
C float 32 32 double 64 64 long double 80 128
8 8 2-1=255 16 16 2-1=65535 http://www2.ucatv.ne.jp/~pen.snow/dq/dq2-7.html
2038 UNIX 1970 UNIX C time(null) UNIX time_t time_t 32 31 2-1 2038 19 14
:char str1[128]; : \0 NULL char str2[] = Hi ; char str3[128] = Hi ; char str4[128] = { H, i, \0 ; char str5[128] = {0x48, 0x69, 0x00; \0 Hi 3 NULL /nʌl/
: \0 NULL \0 NULL H i \0 \0 Segmentation fault
ASCII American Standard Code for Information Interchange 00 10 20 30 40 50 60 70 00 NUL DEL SP 0 @ P ` p 01 SOH DC1! 1 A Q a q 02 STX DC2 2 B R b r 03 ETX DC3 # 3 C S c s 04 EOT DC4 $ 4 D T d t 05 ENQ NAC % 5 E U e u 06 ACK SYN & 6 F V f v 07 BEL ETB 7 G W g w 08 BS CAN ( 8 H X h x 09 HT EM ) 9 I Y i y 0A LF SUB * : J Z j z 0B VT ESC + ; K [ k { 0C FF FS, < L \ l 0D CR GS - = M ] m 0E SO RS. > N ^ n ~ 0F S1 US /? O _ o DEL 7
\ \a BEL bell \v VT vertical tab \b BS backspace \\ backslash \f FF form feed \ \n LF line feed \ \r CR carriage return \0 NUL NULL code \t HT horizontal tab Unix Mac LF \n Windows CR LF \r\n Mac CR \r
\0 0 0 0 #include <stdio.h> int main(void) { char null = \0, n0 = 0, c0 = 0 ; char s0[2] = 0 ; int n; printf( [%c] -> %3d (0x%02X)\n, null, (int) null, (int) null); printf( [%c] -> %3d (0x%02X)\n, n0, (int) n0, (int) n0); printf( [%c] -> %3d (0x%02X)\n, c0, (int) c0, (int) c0); printf( s0: %s\n, s0); %c: 1 %s: n = -1; do { n++; printf( s0[%d]: [%c] -> %3d (0x%02X)\n, n, s0[n], (int) s0[n], (int) s0[n]); while (s0[n]!= \0 ); n = 105; printf( [%c] -> %3d (0x%02X)\n, (char) n, n, n); return 0; (int) int (char) char
/* */ #include <stdio.h> int mygetline(char str[], int n); int capitalize(char str[]); #define N 128 int main(void) { char str[n]; printf( \n ); printf( ); if (mygetline(str, N)!= -1) { capitalize(str); printf( %s\n, str); return 0; /* */ getline(str, N) - 1 []
/* */ int mygetline(char str[], int n) /* Control+D n-1 str 1-1 */ { int c, i; /* getchar int */ for (i = 0; (c = getchar())!= EOF && c!= \n && i < n - 1; i++) { str[i] = c; str[i] = \0 ; /* */ if (c == EOF && i == 0) { i = -1; getchar() c c EOF \n i < n - 1 for return i; int capitalize(char str[]) /* */ { int i, changed = 0; for (i = 0; str[i]!= \0 ; i++) /* str[i] */ { if (str[i] >= a && str[i] <= z ) /* str[i] */ { str[i] += A - a ; changed++; return changed; a z A if C
C #include <string.h> strcat strcmp strcpy strlen concatenate compare copy strncat strncmp strncpy
str* #include <stdio.h> #include <string.h> int main(void) { char str1[] = I\ m ; char str2[] = studying C. ; strcat(str1, str2); return 0; str2 str1 str1 str2 str2 strncat \0 str2 n n+1
C #include <ctype.h> isalnum isalpha isspace isdigit islower isupper toupper tolower
Makefile extern