본문 바로가기

반응형

전체 글

(304)
[Data Struct] 스택 (Stack) - 링크드 리스트를 이용한 스택 스택은 쌓다의 의미 모든 스택의 공통점 LIFO 형식 (Last in First out) Pop() - 스택에서 꺼내는 함수 Push() - 스택에 넣는 함수 링크드 리스트를 사용 할 수 있고 배열을 사용 할 수도 있다. #include #include typedef struct _NODE { int Data; struct _NODE *Next; } NODE; NODE *head, *end; NODE *ptrNode; void InitializeStack(void); void Push(int); void DisplayStack(void); int Pop(void); int main() { int ret; InitializeStack(); Push(1); Push(3); Push(10); Push(20);..
[Data Struct] 이중 링크드 리스트 #include #include //malloc 함수를 쓰기 위해 포함 typedef struct _NODE { char Data; struct _NODE *Next; struct _NODE *Prev; } NODE; NODE *head, *end, *temp; NODE *temp1, *temp2, *temp3, *temp4; void Initialize(void); void InsertNode(NODE *); void DeleteNode(NODE *); void main() { NODE *ptr; int i=0; Initialize(); ptr=head->Next; for(i=0; iData); ptr=ptr->Next; } /* 새로운 노드 생성 */ printf("\n"); temp=(NODE *)..
[Data Struct] 단순 링크드 리스트 #include #include //malloc 함수를 쓰기 위해 포함 typedef struct _NODE { char Data; struct _NODE *Next; } NODE; NODE *head, *end, *temp; NODE *temp1, *temp2, *temp3, *temp4; void Initialize(void); void InsertNode(NODE *); void DeleteNode(NODE *); void main() { NODE *ptr; int i=0; Initialize(); ptr=head->Next; for(i=0; iData); ptr=ptr->Next; } /* 새로운 노드 생성 */ printf("\n"); temp=(NODE *)malloc(sizeof(NODE))..
[C] 나눗셈의 몫과 나머지 (div(), ldiv()) div_t div(int n, int denom) ldiv_t ldiv(int n, int denom) div : int 형 나눗셈일 때 ldiv : long형 나눗셈일 때 #include #include // div()와 ldiv()를 쓰기 위해 포함시킨다. int main() { int a=10; int b=4; long c=2010201; long d=5475; div_t x; // div_t는 구조체이다. 따라서 div_t타입 x를 만들어서 div를 이용해 나눈 것을 받는 용도로 쓴다. ldiv_t y; x=div(a,b); y=ldiv(c, d); printf("%d, %d\n", x.quot, x.rem); printf("%ld, %ld\n", y.quot, y.rem); return 0; }
[C] 절대값 및 부호 바꾸기 (abs(), lasb(), fabs()) // 절대값 #include #include // abs = sbsolute value int main() { int number1=-34; long number2=-42; double number3=-34.12; printf("%d\n", abs(number1));// abs = int형 절대값 printf("%ld\n", labs(number2));// labs = long형 절대값 printf("%lf\n", fabs(number3));// fabs = double형 절대값 return 0; } // 부호 바꾸기 #include #include // abs = sbsolute value int main() { int number1=-34; long number2=42; // double number..
[C] 문자열 비교 & 검색 (strcmp(), strncmp(), strstr(), strpbrk(), strspn(), strcspn()) // 문자열 비교 /* strcmp(dest, srt) 에서 dest==srt 면 0을 반환 destsrc면 양수값 반환 */ #include #include int main() { char s1[]="ABCD"; char s2[]="ABCD"; char s3[]="abcd"; char s4[]="abc"; printf("%d\n", strcmp(s1, s2)); // 문자열이 같으면 0을 반환한다. printf("%d\n", strcmp(s1, s3)); // 대소문자 가린다. 아스키 코드상 대문자가 소문자보다 10진수로 적다. // 따라서 음수값 반환 printf("%d\n", strcmp(s3, s4)); // s3가 s4보다 크다. 따라서 양수값 반환 printf("%d\n", strncmp(s3..
[C] 문자열 복사, 대체, 삽입 (strncpy(), mommove(), memcpy(), strcat(), strncat()) // 문자열 복사 #include #include int main() { char s1[]="abcdefgh"; // *s1 하면 에러 char s2[]="alphabetagama"; // *s2 해도 가능하다. strncpy(s1, s2, strlen(s1)); // s2 문자열을 s1에 복사한다. s1의 길이만큼 복사. printf("%s", s1); // 만약 s2가 s1에 복사할때 s2의 길이가 s1의 길이를 초과해서 // 복사하면 에러가 생긴다. return 0; } // 문자열 대체 memmove() or memcpy() 함수 #include #include int main() { char s1[]="abcdefg"; char s2[]="012"; memmove(s1+3, s2, strlen(..
[C] 문자열 -> 숫자 / 숫자 -> 문자열 (atoi(), atof(), strtod(), strtol(), strtoul()) atoi = Ascii to integer atof = Ascii to float atol = Ascii to long // 문자열 -> 숫자로 변환 #include int main() { int n; double d; char *a="1234567891"; char b[]="123456.78910"; n=atoi(a); printf("%d\n", n); d=atof(b); printf("%f\n", d); return 0; } itoa = Integer to ascii ftoa = Float to ascii // ftoa() 함수는 없다.!! ltoa = Long to ascii // 숫자 -> 문자열 #include int main() { int i=3910; //double d=2913.1239; ..

반응형