12장 | 문자열 관련 함수

2019. 1. 14. 00:56


문자 단위 입출력 함수


문자 출력 함수 : putchar, fputc


1
2
3
4
5
#include<stdio.h>
 
int putchar(int c);
 
int fput(int c, FILE * stream);  // 파일 입출력도 가능하다. 
cs



문자 입력 함수 : getchar, fgetc


1
2
3
4
5
#include<stdio.h>
 
int getchar( void );
 
int fgetc(int c, FILE * stream);  // 파일 입출력도 가능하다. 
cs






문자열 출력 함수 : puts, fputs


1
2
3
4
5
6
7
#include<stdio.h>
 
int puts( const char * s);
 
int fputs(const char * s, FILE * stream);  // 파일 입출력도 가능하다. 
 
//   puts 함수는 자동 개행 하지만 fputs 은 개행하지 않는다.
cs





문자열 입력 함수 : gets, fgets 

1
2
3
4
5
6
7
#include<stdio.h>
 
char * gets (char * s);
 
char * fgets(char * s, int n, FILE * stream);  // 파일 입출력도 가능하다. 
 
 
cs





버퍼링(Buffering)이란 ?



버퍼링의 이유는 데이터 전송의 효율성과 관련이 있다.

키보드나 모니터와 같은 외부 장치와의 데이터 입출력은 생각보다 시간이 걸리는 작업이다. 따라서 버퍼링 없이 키보드가 눌릴 때 마다문자의 정보를 목적지로 이동시키는 것 보다 중간에 메모리 버퍼를 둬서 데이터를 한데 묶어서 이동시키는 것이 보다 효율 적이고 빠르다.


=> 창고에 물건을 나르는 경우 손으로 하나씩 나르는 것 보다. 손수레에 가득 채워서 나르는 것이 보다 빠르고 효율적이다.



 출력버퍼를 비우는 fflush함수 


1
2
3
4
5
#include<stdio.h>
 
int fflush (FILE * stream);
 
 
cs




입력 버퍼 비우기 


ClearLineFromReadBuffer();  // \n 이 읽혀질 때 까지 입력버퍼에 저장된 문자들을 지우는 함수 이다.




문자열의 길이를 반환하는 함수 : strlen


strlen(함수) ; 




문자열을 복사하는 함수들  : strcpy, strncpy


strcpy(str2, str1 );       // str1의 문자열을 str2에 복사 


strncpy(str2, str1, sizeof(str2) );      

 // str1의 문자열을 str2에 복사하되, str1의 길이가 매우 길다면, sizeof(str2) 가 반환한 값에 해당하는 문자의 수 만큼만 복사를 진행하라 . 



문자열을 덧붙이는 함수들 : strcat, strncat


strcat : 


만약 str1 = "first~" 이고 str2 = "second" 이면


strcat(str1, str2 ); 는  str1의 문자열 뒤에 str2 의 문자열을 복붙 해준다. 즉, first~second 가 된다.


strncat(str1, str2, 8);     // str2의 문자열중 최대 8개를 str1의 뒤에 덧붙여라














+ Recent posts