본문 바로가기

코딩/C언어10

문자열 관련 2 문자열은 항상 NULL을 포함한다.int ch1, ch2;ch1=getchar();ch2=fgetc(stdin); putchar(ch1);fputc(ch2,stdout); 여기서 하나의 문자만 입력받고 출력된다.그러나 실제로는 두 개의 문자가 입력되고 출력되었다다만 두번째 문자가 엔터키이다 보미 눈에 띄질 않았을 뿐이다.사실, 엔터키도 아스키코드 값이 10인 '\n'으로 표현되는 문자이다. getchar함수와 fgetc함수의 반환형이 int이다. scanf 함수는 공백이 포함된 형태의 문자열을 입력 받는데 제한이 있다. puts함수가 호출되면 문자열 출력 후, 자동으로 개행이 이루어지지만fputs 함수가 호출되면 문자열 출력 후 자동으로 개행이 이루어지지 않는다. char str[7];gets(str);.. 2016. 9. 12.
메모리 구조 http://jsy6036.tistory.com/entry/4%EC%9B%9426%EC%9D%BC 2016. 9. 10.
바이트 크기 char 1byteshort 2byteint 4byte float 4byte long 4bytedouble 8byte int형 배열요소간 주소 값의 차이는 4byte이다.32비트 시스템에서는 주소 값을 32비트로 표현하기 때문에 포인터 변수의 크기가 4바이트인 반면, 64비트 시스템에서는 주소 값을 64비트로 표현하기 때문에 포인터 변수의 크기가 8바이트이다. 2016. 9. 10.
문자열 관련 함수 문자열은 항상 끝에 null이 포함. 234 #include strlen(str); char str1[20]="1234567890";char str2[20];char str3[5]; strcpy(str2,str1);//str1에 저장된 문자열을 str2에 복사한다.puts(str2); strncpy(str3,str1,sizeof(str3));//12345가 복사된다.단, null이 없어서 이상하게 출력puts(str3); strncpy(str3,str1,sizeof(str3)-1);//1234가 복사된다.str3[sizeof(str3)-1]=0;//마지막에 null을 넣주어서 1234로 출력puts(str3);return 0; char str1[20]="First~";char str2[20]="Secon.. 2016. 9. 10.
exit() exit(123) 이렇게 괄호 속에 int형 정수 숫자를 넣어주면 그 숫자를 운영체제에 반환합니다. 즉 "에러 코드"를 반환합니다. 에러 없이 정상 종료할 때에는 exit(0) 이렇게 0을 반환하고, 에러가 나서 종료할 때에는 0이 아닌 숫자, 대체로 1을 반환합니다. exit() 함수를 사용하기 위해서는 stdlib.h 헤더파일을 인클루드해 주어야 합니다. 2016. 9. 9.
#include <string.h> #include 문자열 복사: strcpy(str2,str1); //str1의 내용을 str2로 복사문자열 비교: strcmp문자열 합치기: strcat 2016. 9. 9.
처음 헷 #include #include // exit() int main(int argc, char* argv[]) { // 옵션 지정하지 않았을 때 에러 출력하고 종료if (argc == 1) {fputs("에러! 옵션을 입력하지 않으셨군요...\n", stderr);exit(1);} // 옵션 개수 출력printf("%d 개의 옵션을 입력하셨군요\n\n", argc - 1); // 옵션 배열의 요소들을 하나씩 출력for (int i = 1; i < argc; i++)printf("argv[%d] = %s\n", i, argv[i]); return 0;} 2016. 9. 9.
fputs("에러! 옵션을 입력하지 않으셨군요...\n", stderr); fputs("에러! 옵션을 입력하지 않으셨군요...\n", stderr); 2016. 9. 9.
포인터 기본적인거 #include int main(void){int *pnum;int num = 12345;pnum = &num;printf("num의 값: %d\n", num);printf("pnum이 가리키는 값: %d\n", *pnum);printf("num변수의 주소: %p\n", &num);printf("pnum변수의 값: %p\n", pnum);return 0;} #include int main(void){int *pnum;int num = 12345;pnum = &num;printf("변경전 num의 값 : %d\n", num);printf("변경전 pnum의 값 : %d\n", *pnum);*pnum = 54321;printf("변경후 num의 값 : %d\n", num);printf("변경후 pnum의 값.. 2016. 9. 9.