Programming/C,C++,C#
-
생성자함수에서 생성자(오버로딩)함수를 호출할때 주의할 점Programming/C,C++,C# 2008. 1. 11. 21:53
2012/03/26 해당글은 모든 컴파일러에서 사용할 수 있는 방법은 아닙니다. 자세한 내용은 http://www.gpgstudy.com/forum/viewtopic.php?p=24230 을 참고해주시기 바랍니다. class CTest { public: int m_val; CTest() { CTest(0); } CTest(int val) { m_val = val; } ~CTest(){} }; int main() { CTest test; printf("m_val : %d\n", test.m_val); return 0; } CTest클래스가 있습니다. 특별한 기능은 없고 생성자함수에서 멤버변수 m_val를 초기화를 하고있습니다. 클래스선언시에 인자값을 주지않으면 0으로 초기화 되도록 되어있습니다. 위 예제에..
-
주민등록번호 검증(검사) 소스Programming/C,C++,C# 2007. 12. 18. 00:18
주민등록번호는 13자리로 구성이 되어 있습니다. 123456 - 1234567 위와 같이 앞자리 6자리는 생년월일 이고 뒷자리 첫번째는 성별입니다. ( 홀수는 남성, 짝수는 여성 ) 그리고 2번째부터 5번째 4개의 숫자는 자신이 태어난 지역코드인데 이것은 현재 보안상비밀이라고합니다. 그리고 6번째는 자신이 태어난 날 해당지역에서 몇번째로 태어났는지, 즉 해당지역에서 그날 몇번째로 태어난 아기인지를 알 수 있습니다. ( 더욱 자세히 얘기하자면 같은 성씨중 .. 즉, 자신이 김씨이고 번호가 2라면 해당지역에서 해당일에 태어난 김씨중 2번째로 태어난 아기가 되는것이죠... ) 그리고 마지막 13번째 숫자가 올바른주민등록번호인지를 판별하는 검증번호가 됩니다. 검증방법은 사실 굉장히 간단합니다. 예) 주민번호 :..
-
strcpy 함수를 만들어보자Programming/C,C++,C# 2007. 11. 26. 12:37
문자열을 복사할때 사용하는 strcpy 정말 많이 사용하는 함수입니다. ------------------------------------------------------------------------------------ char* myStrcpy(char* destStr, const char* srcStr) { int cnt = 0; while(srcStr[cnt] != 0) { destStr[cnt] = srcStr[cnt]; cnt++; } return destStr; } ------------------------------------------------------------------------------------ 문자열의 마지막은 항상 NULL ( 0 )으로 끝난다는 점을 이용하여 만든것..
-
strlen 함수를 만들어보자Programming/C,C++,C# 2007. 11. 25. 23:58
strlen함수는 문자열의 길이를 구하는 함수입니다. 문자열은 아시다시피 맨끝에 NULL ( 0 )값이 들어갑니다. strlen은 문자열의 처음부터 NULL이 위치한 곳까지를 세는것이죠.. int myStrlen(char* str) { int length = 0; while(str[length] != 0) length++; return length; } 위처럼 아주 단순한 내용입니다. str이라는 문자열을 받아 str[length]번째가 NULL이 아닐때까지 문자의 갯수를 세는것입니다. [프로그래밍/C/C++] - strcpy 함수를 만들어보자
-
로또번호 생성기Programming/C,C++,C# 2007. 11. 21. 12:57
#include #include #include void main() { int lotto[6]={0,}; // 6개의 로또번호가 들어갈 배열 int count = 0; // 생성한 로또번호의 갯수 srand(time(NULL)); // 랜덤값 추출 // 6개의 로또번호를 추출할때까지 반복 while(count < 6) { int mFlag = 1; int number = 0; int i=0; // 1 ~ 45 사이의 로또번호를 얻는다. number = rand()%45+1; // 중복되는 로또번호가 있는지 확인한다. for(i=0; i
-
URL Encode/DecodeProgramming/C,C++,C# 2007. 11. 20. 21:07
URL 인코딩----------------------------------------------------------------------- void UrlEncode(const char *inStr, char *outStr) { int inStrLen; unsigned short asc; unsigned char c; int outIndex=0; int i=0; inStrLen = (int)strlen(inStr); for(i=0; i47 && asc64 && asc96 && asc '@' && *(inStr) < '[') num = (*(inStr) - 'A')+10; else num = (*(inStr) - 'a')+10; if((16*(1-i))) num = (num*16); retval += n..
-
strlen 사용시 주의사항Programming/C,C++,C# 2007. 11. 18. 23:13
strlen을 이용하여 문자열의 길이를 구하는 경우가 상당히 많다.. strlen을 이용하여 문자열 포인터로 길이를 구할때 주의해야 할 점이 있다.. char* str = NULL; int len = 0; len = strlen(str); 위와 같이 str이 NULL인 경우 프로그램은 그냥 죽어버린다. 원인은 strlen함수가 자체적으로 문자열이 널포인터인지를 검사하지 않기때문에 생기는 문제이다. 물론 위와 같이 NULL인 str의 길이를 구하려는 사람은 없지만.. 실질적으로 함수가 중간에 끼고 코드의 양이 커질때 위와 같은 문제를 만날때가 적어도 한번은 있을것이다.. 어쩌면 너무 쉽게 생각해서 그냥 지나치는 경우도 많다.. 아무튼 strlen을 사용할때는 문자열포인터가 널값이 아닌지를 꼭 한번 체크해주..