▸C언어/기본함수 및 구현식5 string.h_strcat, strncat_문자열 합치기 (구현식 포함) [ strcat ] arguments로 제공된 두 문자열을 합쳐줌 (앞 문자열에 뒷 문자열 내용을 추가함) 원본 문자열은 추가 문자열을 포함할만큼의 충분한 공간을 확보하고 있어야 함 공간이 부족할 경우 에러 발생 [ strncat ] 추가 문자열, 정확히는 char 타입 배열에서 가져올 바이트 수를 지정해줌 구현식은 아래와 같습니다. 실제 코드는 아니고 직접 짜본 코드입니다. 간단한 코드입니다. [ strcat ] #include #include void MyStrcat(char str[], char str2[]); int main() { char str[15] = "Hello "; char str2[] = "Wolrd..!"; strcat(str, str2); printf("%s\n", str); //.. ▸C언어/기본함수 및 구현식 2020. 1. 15. string.h_strlen_문자열 길이 구하기 (구현식 포함) [ strlen ] 문자열의 길이를 구해줌 정확히는 char 타입 배열의 크기(바이트)를 구해줌 한글의 경우 2바이트 문자이기 때문에 한글자의 값이 2가 됨 구현식은 아래와 같습니다. 간단한 코드로 구현 가능합니다. #include #include int MyStrlen(char str[]); int main() { char str[] = "Hello World..!"; char str2[] = "가나다"; printf("%d\n", strlen(str)); // 14 printf("%d\n", MyStrlen(str)); // 14 printf("%d\n", strlen(str2)); // 6 printf("%d\n", strlen(str2)); // 6 return 0; } /* strlen */ /.. ▸C언어/기본함수 및 구현식 2020. 1. 15. stdio.h_파일제어 (fopen, fopen_s, fclose) fopen : 파일을 열어줌 fclose : 파일을 닫아줌 fopen_s : 파일을 열어줌 (C11 이후) [ fopen ] 파일을 연다는 의미는 디스크에 저장된 파일 내용을 메모리에 올린다는 의미 메모리에 올라온 파일 내용의 첫 주소를 반환해줌 (FILE 타입 포인터 변수에 저장하면 됨) 주소를 직접 찍어주거나 파일 이름만 넣을 경우 기본 위치에서 가져옴 exe파일로 직접 실행할 때는 해당 파일이 있는 위치가 기본 위치 소스 파일로 IDE(비주얼 스튜디오)에서 실행할경우 해당 소스 파일 위치가 기본 위치 IDE에 따라 기본 위치는 다를 수 있음 FILE* fp = fopen("파일이름.txt", "모드"); r 읽기 - 파일 없으면 NULL값 반환 w 쓰기 - 파일 없으면 새로 생성 - 파일 있으면 내.. ▸C언어/기본함수 및 구현식 2019. 12. 5. string.h_strtok_문자열 나누기 (구현식 포함) [ strtok ] 기준 문자열에 포함된 문자를 기준으로 나눠줌 문자열 자체를 찾는게 아닌, 포함된 문자 하나하나가 기준이 됨 strtok(str, "#@!")로 썼을 때, '#'이 나오거나 '@'가 나오거나 '!'가 나오면 끊어줌 끊고난 다음 위치를 기억하고 있다가 문자열 대신 NULL을 넘겨주면 그 위치부터 다시 시작 NULL이 아닌 새로운 문자열을 제공해주면 리셋 검색된 기준 문자는 '\0'로 바꿔줌 (원본이 훼손됨) 시작위치부터 구분자가 연속으로 나올 경우 무시하고 지나감 (####과 같이) 문자열의 끝에 도달하면 NULL값 반환 #include #include int main() { char str[] = "abc#def@@#@ !g"; char* ptr = strtok(str, "#@!"); .. ▸C언어/기본함수 및 구현식 2019. 12. 5. string.h_strcmp, strcnmp_문자열 비교 (구현식 포함) [ strcmp ] 문자열 비교 (대소문자 구분) 앞의 문자가 더 크면 1 값이 같으면 0 뒤의 문자가 더 크면 -1 [ strncmp ] 지정한 갯수만큼만 앞에서부터 비교 #include #include int main() { char str1[] = "abcdef"; char str2[] = "abcdaa"; char str3[] = "abcdzz"; char str4[] = "abcdef"; printf("%d ", strcmp(str1, str2));// 1 (앞의 문자가 더 큼) printf("%d ", strcmp(str1, str3));// -1 (뒤의 문자가 더 큼) printf("%d ", strcmp(str1, str4));// 0 (같음) printf("%d ", strncmp(st.. ▸C언어/기본함수 및 구현식 2019. 12. 5. 이전 1 다음 💲 추천 글 반응형