본문 바로가기
언어/C

[C] 문자 & 문자열 관련 함수

by merona99 2018. 11. 15.
반응형

C

문자 & 문자열 관련 함수



입력: 프로그램 안으로 데이터가 흘러 들어오는 것

출력: 프로그램 밖으로 데이터가 흘러 나가는 것


스트림(stream): 프로그램상에서 모니터와 키보드를 대상으로 데이터를 입출력 하기 위해서 이들을 연결시켜 주는 다리의 역할을 하는 매개체


운영체제: 외부장치와 프로그램과의 데이터 송수신의 도구가 

되는 스트림을 제공


콘솔(키보드와 모니터) 입출력을 위한 '입력 스트림'과 '출력 스트림':  프로그램이 실행되면 자동으로 생성되고, 프로그램이 종료되면 자동으로 소멸되는 스트림

=> 표준 스트림


stdin 

표준 입력 스트림 

키보드 대상으로 입력 

stdout 

표준 출력 스트림 

모니터 대상으로 출력 

stderr 

표준 에러 스트림 

모니터 대상으로 출력 



<문자 출력 함수>


putchar

ex) int putchar(int c);

인자로 전달된 문자정보를 stdout으로 표현되는 표준 출력 스트림으로 전송하는 함수


fputc

ex) int fputc(int c, FILE * stream);

문자를 전송할 스트림을 지정할 수 있음.

stream을 stdout로 하면 putchar 함수와 동일한 함수가 됨



<문자 입력 함수>


getchar

ex) a=getchar();

stdin으로 표현되는 표준 입력 스트림으로부터 하나의 문자를 입력 받아서 반환하는 함수


fgetc

ex) b=fgetc(stdin);

문자를 입력받을 스트림을 지정할 수 있음


EOF(End Of File)

파일의 끝을 표현하기 위해서 정의해 놓은 상수

window = ctrl + z

Linux = ctrl + d


ex)



<문자열 출력 함수>

공백 포함 문자열도 입력 받을수o


puts

자동으로 개행


fputs

자동으로 개행 x


<문자열 입력 함수>


gets

ex)

char str[7];

gets(str);


fgets

ex)

char[7];

fgets(str, sizeof(str), stdin);    //stdin으로부터 문자열 입력 받아서 str에 sizeof(str)의 길이만큼 저장




<입출력 버퍼>


버퍼 : 데이터를 임시로 모아두는(저장하는) 메모리 공간


fflush(stdout);출력버퍼 비우는 함수

fflush(stdin); = 입력버퍼 비우는 함수 (데이터의 소멸을 의미)        //window 계열의 컴파일러


while (getchar() != '\n');        //\n이 읽혀질 때까지 입력버퍼에 저장된 문자들을 지우는 코드



<문자열 관련 함수>


strlen() = 문자열의 길이를 반환


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

strncpy(str2, str1, sizeof()) = sizeof 길이만큼 str2에 복사

//주의점 : 널 문자가 삽입될 공간을 남겨두고 복사를 진행

  이어서 배열의 끝네 널 문자를 삽입해야함


strcat(str1, str2) = str1의 문자열 뒤에 str2를 복사

strncat(str1, str2, sizeof()) = sizeof 길이만큼 str2를 복사


strcmp(str1, str2) = 문자열 비교 

   s1이 더 크면 0보다 큰 값 반환

   s2가 더 크면 0보다 작은 값 반환

   s1과 s2의 내용이 모두 같으면 0 반환

strncmp(str1, str2, sizeof()) = sizeof만큼 문자열 비교


*그외

int atoi(str) = 문자열의 내용을 int형으로 변환

long atol(str) = 문자열의 내용을 long형으로 변환

double atof(str) = 문자열의 내용을 double형으로 변환

반응형

'언어 > C' 카테고리의 다른 글

[C] 파일 입출력  (0) 2018.12.07
[C] 구조체  (0) 2018.12.04
[C] 도전프밍_3 (&난수)  (0) 2018.11.15
[C] 함수 포인터와 void 포인터  (0) 2018.11.13
[C] 구조체 (C언어정석_9)  (0) 2018.11.12

댓글