C언어 Chapter 25.
🔔 예) 문자 함수를 사용한 프로그램의 예
#include<stdio.h>
#include<ctype.h>
int main()
{
if(isalnum ('a'))
{
printf("\'a\' is alphnum\n"); // 'a' is alphnum
}
else
{
printf("\'a' is not alphnum\n");
}
if(iscntrl ('\5'))
{
printf("\'5\' is aplhnum\n"); // '\t' is cntl
}
else
{
printf("\'5\' is not aplhnum\n");
}
if(iscntrl ('\t'))
{
printf("\'\\t\' is cntrl\n"); // '\t' is cntl
}
else
{
printf("\'\\t\' is not cntrl\n");
}
if(isalpha ('a'))
{
printf("\'a\' is alpha\n"); // 'a' is alpha
}
else
{
printf("\'a\' is not alpha\n");
}
if(isdigit ('5'))
{
printf("5 is digit\n"); // 5 is digit
}
else
{
printf("5 is not digit\n");
}
if(isgraph (0x14))
{
printf("%c is graph\n", 0x14);
}
else
{
printf("%c is not graph\n", 0x14);
}
if(islower('b'))
{
printf("\'b\' is lower\n"); // 'b' is alpha
}
else
{
printf("\'b\' is not lower\n");
}
if(isprint ('c'))
{
printf("\'c\' is print\n"); // 'c' is print
}
else
{
printf("\'c\' is not print\n");
}
if(ispunct ('(')))
{
printf("\'(\' is punct\n"); // '(' is punct
}
else
{
printf("\'(\' is not punct\n");
}
if(isspace (' '))
{
printf("\' \' is space\n"); // ' ' is space
}
else
{
printf("\' \' is not space\n");
}
if(isupper('A'))
{
printf("\'A\' is upper\n"); // 'A' is upper
}
else
{
printf("\'A\' is not upper\n");
}
if(isxdigit ('f'))
{
printf("\'f\' is xdigit\n"); // 'f' is xdigit
}
else
{
printf("\'f\' is not xdigit\n");
}
printf("lower of \'A\' is %c\n", tolower ('A')); // lower of 'A' is a
printf("upper of \'a\' is %c\n", toupper ('a')); // upper of 'a' is A
return 0;
}
결과
💡 예를 들면 긴 이름의 자료형을 짧게 정의하는 데 편리하게 이용되며 구조체의 선언에서 유용하게 사용된다.
🔔 예) typedef 문의 사용예
결과
🔔 예) typedef name 표현 방식
🔔 예) typedef 로 정의한 자료형을 이용하여 프로그램을 작성하는 예
결과
struct EMB
{
int inum;
char cName[20];
};
🎯 프로그램 설명
struct EMB A; // 변수의 선언
A.inum;
A.cName[20];
BFFFF9A4↓
inum |
cName |
BFFFF9A8
💡 구조체는 main문 안에 쓸 수도 있다. 하지만, main문 내부 중괄호에서 밖에 쓸 수 없다.
구조체안의 메모리 형태
[4byte]
int A | |||
char B | |||
int C | |||
short D | char E | ||
int F | |||
char G | short H | ||
char I |
결과 : 위 소스의 구조체 size = 28byte
[4byte]
int A | |||
char B | char G | short H | |
int C | |||
short D | char E | char I | |
int F |
결과 : 변경 후 구조체 size = 20byte
#paragma pack(1)
#pragma pack(4)
< 소스 설명 >
emb A;
EMB A;
🔔 예) 학생의 이름과 성적을 입력받아 출력하는 프로그램
결과
🔔 예) 두점의 위치로 부터 거리를 계산하는 프로그램으로 구조체를 초기화 하여 사용한다.
🎯 프로그램 설명
PONTER p1 = {0, 0}, p2 = {1, 1};
p1 = p2;
결과
💡 Tip : 전처리 주석처리 방법(주석처리의 고퀄리티 방법)
C언어 (구조체를 가리키는 포인터 변수 / 구조체를 함수의 인수로 전달하는 법 / 연결리스트 / heap 영역 / malloc / free) (0) | 2016.09.13 |
---|---|
C언어 강좌 (구조체 배열/전역 변수/static/extern) (0) | 2016.09.13 |
[C언어] 문자열 함수/strlen, strcmp, strcpy, strcat, strchr, strrchr/ main함수의 인수/문자열을 가리키는 포인터 배열/ren (0) | 2016.09.12 |
C언어 강좌 (void */보이드 포인터/gets() puts() 함수/make파일 변수선언) (0) | 2016.09.12 |
C언어 강좌(문자열/make파일 만들기) (0) | 2016.09.12 |