2017.11.09 22:30

보호되어 있는 글입니다.
내용을 보시려면 비밀번호를 입력하세요.

분류없음2017.11.06 14:47

C온라인 개발도구

https://wandbox.org/

 

p.354 <예제 14-1>

1
2
3
4
5
6
7
8
9
10
11
12
#include <stdio.h>
int main(void)
{
  char i=3;
  int k=8;
  printf("변수 i의 주소(10진수)>%u\n"&i);
  printf("변수 k의 주소(10진수)>%u\n"&k);
  printf("변수 i의 주소(16진수)>%p\n"&i);
  printf("변수 k의 주소(16진수)>%p\n"&k);
  return 0;
}
 
cs

 

 

 

p.356 <예제 14-2>

1
2
3
4
5
6
7
8
9
10
11
12
13
#include <stdio.h>
int main(void)
{
  int k=8;
  int *p;
  p=&k;
  printf("k의 주소: %u\n"&k);
  printf("p의 주소: %u\n"&p);
  printf("p의 값  : %u\n", p);
  printf("p가 가리키는 곳의 값: %d\n"*p);
  return 0;
}
 
cs

 

 

 

p.357 <예제 14-3>

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <stdio.h>
int main(void)
{
  int k=8, i=3;
  int *p;
  p=&k;
  printf("k의 주소: %u\n"&k);
  printf("p의 주소: %u\n"&p);
  printf("p의 값  : %u\n", p);
  printf("p가 가리키는 곳의 값: %d\n"*p);
  p=&i;
  printf("i의 주소: %u\n"&i);
  printf("p의 값  : %u\n", p);
  printf("p가 가리키는 곳의 값: %d\n"*p);
  return 0;
}
 
cs

 

 

 

p.358 <예제 14-4>

1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <stdio.h>
int main(void)
{
  int k=8, i=3;
  int *p;
  p=&k;
  printf("k의 값: %u\n", k);
  printf("p가 가리키는 곳의 값: %u\n"*p);
  *p=i;
  printf("k의 값: %u\n", k);
  printf("p가 가리키는 곳의 값: %u\n"*p);
  return 0;
}
 
cs

 

 

 

p.360 <예제 14-5>

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <stdio.h>
int main(void)
{
 int a[3]={102030};
 int *pt;
 pt=a;
 printf("배열 이름    : %u\n", a);
 printf("a[0]의 주소 : %u\n"&a[0]);
 printf("a[1]의 주소 : %u\n"&a[1]);
 printf("a[2]의 주소 : %u\n"&a[2]);
 printf("a[0]의 값   : %d\n", a[0]);
 printf("pt가 가리키는 곳의 값: %d\n"*pt);
 return 0;
}
 
cs

 

 

 

p.362 <예제 14-6>

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <stdio.h>
int main(void)
{
 int a[3]={102030};
 int *pt;
 pt=a;
 printf("배열 이름:%u\n", a);
 printf("a[1]의 주소:%u\n"&a[1]);
 printf("a+1의 값:%u\n", a+1);
 printf("pt+1의 값:%u\n", pt+1);
 printf("a[2]의 값:%d\n", a[2]);
 printf("*(pt+2)의 값:%d\n"*(pt+2));
 printf("*pt+2의 값:%d\n"*pt+2);
 return 0;
}
 
cs

 

 

 

p.363 <예제 14-7>

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <stdio.h>
int main(void)
{
 int a[3]={102030};
 int *pt;
 pt=a;
 printf("배열 이름   : %u\n", a);
 printf("포인터 주소 : %u\n"&pt);
 printf("포인터의 값 : %u\n", pt);
 printf("*pt의 값   : %d\n"*pt);
 pt++;
 printf("포인터의 값 : %u\n", pt);
 printf("*pt의 값 : %d\n"*pt);
 return 0;
}
 
cs

 

 

 

p.367 <예제 14-8>

1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <stdio.h>
int main(void)
{
 char str1[]="copy";
 char *str2 ="text";
 printf("str1의 주소: %u \n", str1);
 printf("str2에 저장된 주소: %u \n", str2);
 printf("str1[2]에 저장된 값: %c \n", str1[2]);
 printf("str2+2의 값: %c \n"*(str2+2));
 printf("문자열 str1: %s \n", str1);
 printf("문자열 str2: %s \n", str2);
 return 0;
}
 
cs

 

 

 

p.369 <예제 14-9>

1
2
3
4
5
6
7
8
9
10
11
12
#include <stdio.h>
int main(void)
{
  char na[4][17]={"Korea""Brazil""Germany""Papua New Guinea"}; 
  char *ct[]={"Korea""Brazil""Germany""Papua New Guinea"};
  printf("na[2] : %s \n", na[2]);
  printf("na[2][3] : %c \n", na[2][3]);
  printf("ct[2] : %s \n", ct[2]);
  printf("ct[2][3] : %c \n", ct[2][3]);
  return 0;
}
 
cs

 

 

 

p.371 <예제 14-10 A>

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <stdio.h>
void swap1(int i, int j);
int main(void)
{
  int i=30, j=80;
  swap1(i,j);
  printf("main i=%d j=%d\n",i,j);
  return 0;
}
void swap1(int i, int j)
{
  int temp;
  temp=i;
  i=j;
  j=temp;
  printf("swap i=%d j=%d\n",i,j);
}
 
 
cs

 

 

 

p.371 <예제 14-10 B>

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <stdio.h>
void swap2(int *i, int *j);
int main(void)
{
  int i=30, j=80;
  swap2(&i,&j);
  printf("main i=%d j=%d\n",i,j);
  return 0;
}
void swap2(int *i, int *j)
{
  int temp;
  temp=*i;
  *i=*j;
  *j=temp;
  printf("swap i=%d j=%d\n",*i,*j); 
}
 
 
cs

 

 

 

p.373 <예제 14-11>

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <stdio.h>
int plus(int x, int y);
int main(void)
{
 int (*pt)(int a, int b);
 int a=3, b=5;
 pt=plus;
 printf("result = %d \n", pt(a, b));
 printf("result = %d \n", plus(a, b));
 return 0;
}
int plus(int x, int y)
{
 return x+y;
}
 
cs

 

 

 

p.374 <예제 14-12>

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <stdio.h>
#include <stdlib.h>
int *mat_mult(int m[], int n);
int main(void)
{
 int ma[4]={1357};
 int *mb, i;
 for(i=0;i<4;i++)
   printf("ma[%d]=%2d ", i, ma[i]);
 printf("\n");
 mb=mat_mult(ma, 4);
 for(i=0;i<4;i++)
   printf("mb[%d]=%2d ", i, mb[i]);
 return 0;
}
int *mat_mult(int m[], int n)
{
 int *mc=(int*)malloc(n);
 for(int i=0;i<n;i++)
    mc[i]=m[i]*n;
 return mc;
}
 
cs

 

 

 

p.376 <예제 14-13>

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <stdio.h>
char *string_cpy(char *dest, const char *src);
int main(void)
{
 char str[20];
 char *pt;
 pt=string_cpy(str, "my program");
 printf("str : %s \n", str);
 printf("pt : %s \n", pt);
 return 0;
}
char *string_cpy(char *dest, const char *src)
{
  char *p=dest;
  while(*src)
    *p++=*src++;
   *p=NULL;
   return dest;
}
 
cs

 

 

 

p.377 <예제 14-14>

1
2
3
4
5
6
7
8
9
10
11
12
13
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
 char *str;
 str = (char *malloc(20);
 printf("문자열을 입력하고 Enter>");
 scanf("%s", str);
 printf("입력된  문자열  : %s \n", str);
 free(str);
 return 0;
}
 
cs

 

 

 

p.378 <예제 14-15>

1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
 int num1=68734;
 long num2=9876543;
 char s[25];
 itoa(num1, s, 10);
 printf("정수:%d, 문자열:%s\n", num1, s);
 ltoa(num2, s, 10);
 printf("정수:%ld, 문자열:%s\n", num2, s);
 return 0
}
 
cs

 

 

 

p.378 <예제 14-16>

1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
 int num1=14;
 long num2=512;
 char s[25];
 itoa(num1, s, 2);
 printf("정수:%d, 2진수문자열:%s\n", num1, s);
 ltoa(num2, s, 16);
 printf("정수:%ld, 16진수문자열:%s\n",num2, s);
 return 0
}
 
cs

 

 

 

p.379 <예제 14-17>

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
 char *s1="-12.5e04";
 char *s2="1100";
 char *endptr;
 double num1;
 long num2;
 num1=strtod(s1, &endptr);
 num2=strtol(s2, &endptr, 2);
 printf("문자열:%s, double형 숫자 :%lf\n", s1, num1);
 printf("문자열:%s, long 형 10진수 :%ld\n", s2, num2);
  return 0
}
 
cs

 

 

 

p.380 <예제 14-18>

1
2
3
4
5
6
7
8
9
10
11
12
13
#include <stdio.h>
#include <string.h>
int main(void)
{
  char s[15]="star";
  char t[6]="craft";
  strcat(s, t);
  printf("strcat :%s\n", s);
  strncat(s, t, 3);
  printf("strncat:%s\n", s);
  return 0;
}
 
cs

 

 

 

p.381 <예제 14-19>

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <stdio.h>
#include <string.h>
int main(void)
{
 char *s1="Republic of KOREA";
 char *s2="Republic of CHINA";
 int ptr;
 ptr=strcmp(s1, s2);
 if (ptr<0 || ptr>0)
   printf("문자열 s1과 s2가 다르다.\n");
 ptr=strncmp(s1, s2, 12);
 if (ptr==0)
   printf("문자열 s1과 s2가 같다.\n");
 return 0
}
 
cs

 

 

 

p.382 <예제 14-20>

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <stdio.h>
#include <string.h>
int main(void)
{
 char s[15];
 char *str1="abcdefghi";
 char *str2="ABCDEFGHI";
 strcpy(s, str1);
 printf("strcpy : %s\n", s);
 strncpy(s, str2, 4);
 printf("strncpy : %s\n", s);
 printf("length of s : %d\n", strlen(s));
 return 0
}
 
cs

 

 

 

p.383 <예제 14-21>

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <stdio.h>
#include <string.h>
int main(void)
{
 char s[15]="program";
 char *str1="compile";
 printf("original s : %s\n", s);
 printf("length of s: %d\n", strlen(s));
 strncpy(s, str1, 4);
 printf("\ns after strncpy : %s\n", s);
 printf("length of s: %d\n", strlen(s));
 s[4]='\0';
 printf("\ns after NULL : %s\n", s);
 printf("length of s: %d\n", strlen(s));
 return 0
}
 
cs

 

 

신고
Posted by 곰대생
2017.10.26 18:13

보호되어 있는 글입니다.
내용을 보시려면 비밀번호를 입력하세요.


티스토리 툴바