본문 바로가기
휴지통/C 언어

C언어 함수들2

by 신재권 2021. 2. 25.

<stdilb.h>

unsigned long strtoul

long strtol과 동일하지만 부호가 존재하지 않는다.

 

<stdilb.h>

double strtod(const char * string, char **stop);

string은 지수가 포함된 문자열

stop은 변환이 되다가 멈춰진 위치

지수(e, E)를 사용

문자열을 실수 (지수)로 변환

 

<stdlib.h>

char * itoa(int value, char *string, int radix);

value는 변환될 숫자 값, string은 변환될 숫자가 저장될 버퍼

radix는 value값을 몇 진수로 저장할껀지?

정수를 문자열로 변환한다.

 

char *ltoa( );

itoa와 동일하지만 반환 값은 long형임 

 

char *fcvt(double value, int count, int *dec, int *sign)

value는 변환될 실수 값, count는 소수점 이하 몇자리 까지 변환 할지, dec은 변환될  문자열의 몇번째가 소수점의 위치인가?
sign이 0이면 양수, 1이면 음수

->내부적인 기억공간에 별도로 저장함(문자형 포인터로 받아야 한다)

소수점과 부호가 없이 출력된다.

 

evct();

fvct와 동일하지만 지수를 사용

fvct와 기억하는 메모리 공간을 공유하기 때문에 같이 사용시 주의해야 한다.

 

char * gvct(doube value, int digits, char *buffer);

value는 지수값이 포함된 실수 값

digits는 지수를 문자열로 변환 시 몇 바이트 까지 의미있는 숫자로 변환할지?

 value는 buffer에 변환되어 저장됨

 

<ctype.h>

int isalpha(int c);

c는 비교할 문자

알파벳 a~z, A~Z가 있는 경우 1을반환, 없을시 0을 반환

 

int isdigit(int c) ->숫자만 뽑아낼 때 사용

 숫자(0~9)인 경우 1반환 없는 경우 0반환  

 

int isalnum(int c) 

위와 동일하지만, a~z, A~Z, 0~9 가 있는 경우 그 문자를 반환

 

int isupper(int c)

A~Z 대문자가 있을 시 그 문자를 반환

 

int islower(int c)

a~z 소문자가 있을 시 그 문자를 반환

 

int isspace(int c)

문자 중 공백, 탭, 개행문자를 추출가능 

-> 주로 필요없는 문자 제거시 사용

 

<stdlib.h>

void swab(char *src, char &dest, int count);

문자를 2바이트씩 잘라서 위치를 교체할 수 있다 .

ex ) ea  -> ae

src는 원본 문자열, dest는 바뀌어진 문자가 저장될 버퍼의 포인터

count는 총 바뀔 문자의 수

 

<string.h>

void * memcpy(void *dest, void *src, size_t count);

메모리를 복사하는 함수(널값도 복사 가능) -> 구조체 복사에 주로 사용됨

dest는 복사될 버퍼, src는 복사할 버퍼,  count는 복사할 src의 크기

 

int memcmp(const void buf1, const void * buf2, size_t count);

buf1과 buf2는 비교할 버퍼이고, count는 비교할 버퍼의 크기이다.

strcmp와 다르게 널 값을 포함해서도 비교 가능하다.

s1 = s2  -> 0을반환

s1 < s2  -> -1을 반환

s1 > s2  -> 1을 반환

 

void *memmove(void *buf1, void *buf2, size_t count);

buf2가 가리키는 곳부터 count 바이트 만큼 buf1이 가리키는 곳으로 복사한다.

memcpy와 내부적으로 동일하다.

 

void *memset (void *dest, int fillchar, size_t count);

dest는 초기화(특정 문자가 채워질)버퍼

fillchar는 초기화할 문자( 또는 특정 문자)

count는 dest에 몇 바이트의 문자로 채울지의 크기

->구조체, 문자열, 공용체등 다른 버퍼의 값을 0으로 초기화 할 때 주로 사용

 

<stdio.h>

rewind(FILE *stream);

파일 포인터의 위치를 처음으로 되돌림

 

int fgetpos(FILE *stream, fpos_t *pos);

pos에 파일 포인터의 위치가 저장된다.

 

fsetpos(FILE *stream, const fpos_t *pos);

pos에 fgetpos를 사용해 현재 위치를 저장할 수 있다.

호출할 시 저장한 위치로 포인터가 이동된다.

 

fcloseall();

여러파일을 모두 닫을 때 사용

 

ferror(FILE *stream)

파일을 읽거나 쓸 때 에러가 발생하였는지 여부를 판단

에러가 있는 경우 0이 아닌 값을 반환 함

 

perror(const char *string)

파일 개방이 실패한 이유에 대하여 출력 메세지를 출력할 수 있다.

 

tmpnam(char *string);

임시 파일을 생성할 수 있는 함수

char *string은 임시로 생성된 파일의 이름이 저장될 버퍼

 

<io.h>

int _access(const char *pate, int mode);

path는 검사할 파일의 경로 및 이름

mode는 검색할 방법

mode의 종류

0 : 파일 및 디렉터리가 존재하는지 검사하는 경우

2 : 파일을 쓰기 위해 개방할 수 있는지 검사하는 경우

4 : 파일을 읽기 위해 개방할 수 있는지 검사하는 경우

6 : 파일을 읽거나 쓰기 위해 개방할 수 있는지 검사하는 경우

반환값이 0이 아니면 파일이 존재하지 않음.

 

<stdio.h>

int rename(const char *oldname, const char *newname);

oldname은 원래의 파일명, newname은 새로 변경할 파일 명 

변경 성공 시 0을 반환

 

<io.h> <sys/stat.h>

int _chmod(const char *filename, int pmode);

filename은 파일 명, pmode는 읽기 또는 쓰기 설정 값

파일의 속성을 변경할 수 있는  함수

pmode의 종류 

_S_IREAD는 읽기 전용

_S_WRITE는 일반 파일

 

<stdio.h>

int remove(const char *path);

path는 삭제할 파일의 경로 및 이름 

저장된 경로의 해당 파일을 삭제 (단 , 읽기 전용 모드 속성의 파일은 삭제 불가)

 

 

 

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

매크로와 선행처리기(Preprocessor)  (0) 2021.02.12
C언어 함수들1  (0) 2021.02.11
메모리 관리와 동적할당  (0) 2021.02.10
파일입출력2  (0) 2021.02.07
파일 입출력1  (0) 2021.02.06