728x90
문자열이란?
char 타입의 배열 : 한칸에 문자하나
마지막 문자열은 '\0' null값
=>
C에서는 char str[] = "hello";
이것은 str
h |
e |
l |
l |
o |
\0 |
과 같음
string literal
char *str = "hello"; (수정 불가능)
string.h라이브러리 |
|
strcpy |
문자열 복사 |
strlen |
문자열 길이 |
strcat |
문자열 합치기 |
strcmp |
문자열 비교 |
strdup함수를 이용하여
words할당하기
ex) words
rain |
cloud |
sky |
sun |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
#define BUFFER_SIZE 100
int main(void){
char *words[100];
int n = 0; //num of str
char buffer[BUFFER_SIZE];
while(n<4 && scanf("%s", buffer) != EOF){
//words[n] = buffer;하면 마지막 값만 나옴
words[n] = strdup(buffer);//strdup은 buffer의 복제본 주소를 넘김
n++;
}
for (int i = 0; i < 4; i++){
printf("%s\n", words[i]);
}
}
//strdup함수
char *strdup (const char *str)
{
char *p;
p = (char *) malloc (strlen (str) + 1);
if (p)
strcpy (p, str);
return p;
}
|
cs |
파일내용 출력
1
2
3
4
5
6
7
8
|
#include <stdio.h>
int main(void){
FILE *fp = fopen("input.txt", "r");
char buffer[100];
while (fscanf(fp, "%s", buffer) != EOF)
printf("%s", buffer);
fclose(fp);
}
|
cs |
파일읽어오고 다른 파일에 복사
1
2
3
4
5
6
7
8
9
10
|
#include <stdio.h>
int main(void){
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);
}
|
cs |
'programming > C' 카테고리의 다른 글
[C언어] 자료구조 - 개념 정리 (0) | 2020.11.02 |
---|---|
[C언어] 자료구조 - 문자열예제(글자수 공백포함해서 세는 프로그램) (0) | 2020.08.08 |
[C언어] 자료구조 - 포인터,배열,malloc (1) | 2020.07.17 |
[C언어] 두 배열의 합집합, 교집합, 차집합 구하는 함수 (0) | 2019.10.18 |
[C언어] 포인터 사용하여 배열 이어붙이기,정렬확인,비교 (0) | 2019.10.15 |
댓글