ABOUT ME

프로그래밍 일기

Today
Yesterday
Total
  • 자료구조 제2강
    자료구조 2022. 1. 9. 18:32

    문자열

    /*1번*/
    char str[6];
    str[0] = 'h';
    str[1] = 'e';
    str[2] = 'l';
    str[3] = 'l';
    str[4] = 'o';
    str[5] = '\0';
    
    /*2번*/
    char str[] = "hello";
    /*3번*/
    char *str = "hello";	// 이 방법은 수정이 불가능하다는 점에서 위 두 방법과 다르다.

     

    string.h

     

    strcpy 문자열 복사
    strlen 문자열의 길이
    strcat 문자열 합치기
    strcmp 문자열 비교

     

    #define _CRT_SECURE_NO_WARNINGS
    #include <stdio.h>
    
    #define BUFFER_SIZE 100
    
    /*
    마지막에 입력한 문자열로 전부 출력됨
    -> buffer에 저장된 값이 아닌 buffer의 주솟값이 저장되기 때문
    */
    int main() {
    	char* words[100];
    	int n = 0;		// number of strings
    	char buffer[BUFFER_SIZE];
    
    	while (n<4 && scanf("%s", buffer) != EOF) {
    		words[n] = buffer;
    		n++;
    	}
    	for (int i = 0; i < 4; i++)
    		printf("%s\n", words[i]);
    }
    int main() {
    	char* words[100];
    	int n = 0;		// number of strings
    	char buffer[BUFFER_SIZE];
    
    	while (n < 4 && scanf("%s", buffer) != EOF) {
    		words[n] = _strdup(buffer);		// _strdup(str1) : str1의 복제본을 받아서 그 복제본의 주소를 return함
    		n++;
    	}
    	for (int i = 0; i < 4; i++)
    		printf("%s\n", words[i]);
    }

    _strdup(str1) : 매개변수로 받은 하나의 문자열을 복제하여 반환한다.

     

     

    FILE

    #include <stdio.h>
    
     //파일로부터 읽기
    void main() {
    	FILE* fp = fopen("input.txt", "r");
    	char buffer[100];
    	while (fscanf(fp, "%s", buffer) != EOF)
    		printf("%s", buffer);
    	fclose(fp);
    }
    
    // 파일 읽고 쓰기
    void main() {
    	FILE* in_fp = fopen("input.txt", "r");
    	FILE* out_fp = fopen("output.txt", "w");
    	char buffer[100];
    	while (fscanf(in_fp, "%s", buffer) != EOF)
    		fprintf(out_fp, "%s", buffer);
    	fclose(in_fp);
    	fclose(out_fp);
    }

    '자료구조' 카테고리의 다른 글

    *자료구조 제 6강  (0) 2022.02.15
    자료구조 제 5강  (0) 2022.02.15
    자료구조 제 4강  (0) 2022.01.24
    자료구조 제 3강  (0) 2022.01.09
    자료구조 제1강  (0) 2022.01.09
Designed by Tistory.