문자 관련 입출력 함수
getc() putc()
int getc( FILE *stream);
- 지정한 스트림으로 부터 문자 읽기
- 입력문자 ASCII코드 값을 리턴, 오류 시에는 EOF 리턴
int putc(int ch, FILE *stream);
- 지정한 스트림에 지정한 값을 출력
- 정상 출력 시 출력문자 리턴, 오류 시는 EOF 리턴
_getch() _getche() _putch() (conio.h에 포함)
int _getch(void); int _getche(void);
- 키보드로부터 입력되는 문자를 읽음
- 입력 문자의 ASCII코드를 리턴
- _GETCHE() 는 echo를 사용
- 버퍼를 사용하지 않는 입력
int _putch(int ch);
- 화면에 지정한 값을 출력
- 정상 출력 시 출력문자 리턴, 오류 시 EOF 리턴
#include <stdio.h>
#include <conio.h>
int main()
{
char a;
a = _getch(); // 버퍼 사용하지 않기에 키보드를 누르면 바로 처리
_putch(a);
a = _getche(); // 화면에 입력한 내용을 뿌려줌.
_putch(a);
return 0;
}
getchar() puchar()
int getchar(void);
- 키보드로부터 입력되는 문자를 일음
- 입력 문자의 ASCII코드를 리턴
- 버퍼를 사용하는 입력
int putchar(int ch);
- 화면에 지정한 값을 출력
- 정상 출력 시 출력문자 리턴, 오류 시 EOF 리턴
#include <stdio.h>
int main()
{
char a;
a = getchar();
putchar(a);
return 0;
}
문자열 관련 입출력 함수
gets() gets_s() puts()
char *gets(char *str);
char *gets_s(char *str, rsize_t n); // 입력받을 수 있는 최대 갯수 지정 가능
- 키보드로부터 입력되는 문자들을 \n까지 읽어서 str에 입력
- "\n"을 null로 변환하여 저장
int puts(char *str);
- 화면에 지정한 문자열을 출력
- null(\0)을 \n으로 변환하여 출력
- 정상 출력 시 음수가 아닌 값을 리턴, 오류 시 EOF 리턴
문자, 문자열 처리 관련 라이브러리
- 헤더파일 : ctype.h string.h
- isalpha(), islower(), isupper()
- strlen(), strcpy(), strcmp()
- http://en.cppreference.com/w/c/string/byte
자주 사용하는 함수 이용하기
1. isalpha()
if (('A' <= ch && 'Z' >= ch) || ('a' <= ch && 'z' >= ch))
int isalpha(int ch);
- 헤더파일: ctype.h
- 인수가 알파벳 문자인지를 확인
- 알파벳문자이면 0이 아닌 값을 리턴
- 알파벳문자가 아니면 0을 리턴
ex) 문자배열에서 알파벳문자가 아닌 첫 번째 글자의 위치를 찾으시오.
#include <stdio.h>
#include <ctype.h>
int main()
{
int i, cnt = 1;
char a[20] = "Good Night";
for(i=0; i<20; i++)
{
if(!isalpha(a[i]) break;
cnt++;
}
printf("알파벳문자가 아닌 첫번째 글자는 %d번째 입니다.", cnt);
return 0;
}
2. islower() isupper()
int islower(int ch); // 인수의 문자가 소문자이면 0이 아닌 값, 그 외이면 0을 리턴
int isupper(int ch); // 인수의 문자가 대문자이면 0이 아닌 값, 그 외이면 0을 리턴
- 헤더파일: ctype.h
3. strlen()
size_t strlen(const char *str);
- 헤더파일: string.h
- 문자열에서 null(/0) 전까지의 길이를 리턴
ex) HELLO/0 -> 5
#include <stdio.h>
#include <string.h>
int main()
{
char a[20] = "Good Night";
printf("문자열의 길이는 %d 개 입니다.", strlen(a));
return 0;
}
4. strcpy()
char *strcpy(char *dest, const char *src);
- 헤더파일: string.h
- null 문자를 포함하여 src의 문자열을 dest로 복사
- src 문자열의 길이가 dest 문자 배열의 크기보다 크면 실행 에러가 발생할 수 있음
cf) error_t *strcpy_s(char *dest, size_t sizedest, const char *src);
- sizedest에 복사할 최대 문자수(dest의 크기를 기술)
- 함수 성공 시 0, 그 외 오류번호를 리턴
5. strcmp()
int ctrcmp(const char *lhs, const char *hrs);
- 헤더파일: string.h
- null 문자 전까지 각 문자를 비교
- 동일하면 0을 리턴, 다르면 1을 리턴 (주의할 점)
- lhs가 크면 양수 rhs가 크면 음수를 리턴
'프로그래밍 언어 공부 > C' 카테고리의 다른 글
수학 관련 라이브러리 (0) | 2022.01.13 |
---|---|
도서관리 시스템 구현 (0) | 2022.01.13 |
라이브러리(Library) (0) | 2022.01.12 |
어플리케이션 최적화(Application Optimization) (0) | 2022.01.12 |
디버깅(Dubugging) (0) | 2022.01.11 |