I am blessed because of your blood. 요새 날도 덥고 해서 학교에 8시까지 가는 걸 목표로 지내고 있는데진짜 너무 행복하다.대학생 4학년이 되서야 왜 이제야 실천을 하는 건지 ㅠㅠ.. 아침에 지옥철도 없고.. 수업 늦을까봐 초조한 마음도 없고수업 들어가기전에 복습도 하고 공부도 하고 미뤄놓고 못해놨던 과제들도 다 하니하루를 시작하는게 마음이 너무 가뿐하다!!! 사실 아침에 일찍일어나면 소화가 잘 안되고 머리가 띵해서계속 주저했었는데 포기하지 않고 계속 노력하니까 드디어 이제 몸이 따라 주는 것같다!! 너무 감사하닿ㅎㅎㅎㅎㅎ
1. 문자열은 char 타입의 배열의 각 칸마다 문자 하나씩 저장됨배열의 마지막에는 문자열의 끝은 표시하는 null character가 들어감( 0, NULL, '\0'으로도 표기 가능)char str[6];str[0]='h';str[1]='e';str[2]=0; 2. 1의 방법이 불편하기 때문에, c언어는 문자열을 생성하는 평리한 방법을 제공함.char str[]="hello world";혹은, char *str = "hello world"; ( 이 방법은 문자열이 수정 불가능, string literal 이라고 불린다.) 3. string.h 라이브러리는 문자열을 다루는 다양한 함수를 제공한다.strcpy 문자열 복사strlen 문자열의 길이strcat 문자열 합치기strcmp 문자열 비교
#include #include #define BUFFER_SIZE 100 int read_line(char str[], int limit) { int ch, i = 0; while ((ch = getchar()) != '\n') if (i < limit) str[i++] = ch; str[i] = '\0'; return i; } int main(void) { char buffer[BUFFER_SIZE]; while (1) { printf("$ "); int len=read_line(buffer, BUFFER_SIZE); printf("%s:%d\n", buffer, len); } return 0; }
1. 버퍼? 1차원 배열의 스트림 공간 컴퓨터의 완충 기억 장치 2. 버퍼의 역할 #include #include int main(void) { char buffer[40]; while (1) { printf("$ "); scanf("%s", buffer); printf("%s:%d\n", buffer, strlen(buffer)); } } 위의 코드에서 a a를 입력 시 일어나는 현상ㅋㅋㅋ 다음 문자열을 입력 받는 scanf가 씹혀버림 ㅠㅠ 일단 기본적으로 scanf가 %d, %s, %c 를 입력 받을 때 버퍼(stdin)에 저장을 모두 다 해놓고 ' ', '\n', \t'를 만나기 전 까지 데이터를 얻어 온다. 따라서 처음 a a 를 입력 했을 시첫번 째, scanf가 a 다음의 스페이스를 만남과 동..