자료구조
자료구조 제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);
}