-
문자열
/*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); }