#include <stdio.h>
#include <string.h>
#define BUFFER_SIZE 100
using namespace std;
// strcpy : 문자열 복사
// strlen : 문자열의 길이
// strcat : 문자열 합치기
// strcmp : 문자열 비교
int main()
{
char str[] = "string"; // 겹 따옴표를 이용하면 컴파일러가 자동으로 배열의 크기를 맞춰서 저장
//char *str = "hello"; 와 같은 string literal은 수정이 불가능함.
char word[10];
word[0] = 'h';
word[1] = 'e';
word[2] = 'l';
word[3] = 'l';
word[4] = 'o';
word[5] = 0; // 문자의 끝을 알림
//printf("%s", word);
char* words[100]; // 배열의 한 칸에 저장되는 데이터의 타입. 단어들을 가리키는 포인터가 저장됨
int n = 0; // number of strings;
char buffer[BUFFER_SIZE];
// scanf("%d", &a) 정수 가져올 때. &로 a의 주소를 가져옴. 배열은 배열의 이름 자체가 배열의 주소이기 때문에 & 필요 없음
while (n < 4 && scanf_s("%s", buffer) != EOF)
{
// words[n] = buffer; // words의 모든 배열들이 buffer의 '주소'를 저장함
words[n] = _strdup(buffer); // 문자열을 매개변수로 받고 그 복제본을 만들어서 그 주소를 전달해줌
// words 자체가 문자열 배열은 아니기 때문에 strcpy를 통해 destination으로 설정 불가
n++;
}
for (int i = 0; i < 4; i++)
printf("%s\n", words[i]);
return 0;
}
'Information Technology > C' 카테고리의 다른 글
[C언어] 전화번호부 v.4 (0) | 2020.01.07 |
---|---|
[C언어] 전화번호부 v.3 (0) | 2020.01.06 |
[C언어] 전화번호부 v.2 (0) | 2020.01.06 |
[C언어] 전화번호부 v.1 (0) | 2020.01.06 |
[C언어] 문자열(2) (0) | 2020.01.05 |