Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 28 | 29 | 30 |
Tags
- 핵심 요약
- 유료강좌
- tips강좌
- mfc 실습
- C
- 마이크로소프트
- MFC 예제
- linux
- 충무창업큐브
- do it c
- C++
- win32
- MFC
- 정보처리기사
- Tipsware
- C언어
- 실습
- 미가공
- SSG
- 별찍기 기초
- 포트폴리오
- MyThread
- mysql
- MyTread
- 정처기 독학
- Time
- 도움말
- 별찍기
- 김성엽
- ListBox
Archives
- Today
- Total
History
[c언어]getchar()함수로 문자열 입력받기 본문
728x90
반응형
getchar 함수는 getc 함수처럼 표준 입력 버퍼에서 한 개의 문자를 가져오는 '표준 입력 함수'이다.
이번 실습은 getchar 함수를 이용하여 사용자가 Enter 키를 누를 때까지 입력한 문자를 모두 저장하는 프로그램을 만들어본다.
위 기능은 gets함수 기능과 똑같다.
코드는 아래와 같다.
#include<stdio.h>
#pragma warning(disable:4996)
#define MAX 64
int main()
{
int i = 0;
char ch, arr[MAX];
printf("Input:");
while (i< MAX-1) //마지막 배열에는 null값을 받아야하기 때문에
{
ch = getchar(); //문자 1개를 입력받는다.
if (ch=='\n') { //enter를 누르면 입력 종료
break;
}
arr[i++] = ch; //반복문을 빠져나오기 전까지 배열에 값을 넣는다.
}
arr[i] = 0; //문자열 마지막에는 null값을 넣어줘야한다.
printf("Output:%s", arr); //출력
return 0;
}
실행화면은 아래와 같다.
추가로 위의 코드를 따로 기능 분리하여 함수로 구현하면 아래와 같다.
#include<stdio.h>
#pragma warning(disable:4996)
#define MAX 64
int ReturnString(char*a_arr)
{
int ch, i = 0;
while (i < MAX - 1) //마지막 배열에는 null값을 받아야하기 때문에
{
ch = getchar(); //문자 1개를 입력받는다.
if (ch == '\n') { //enter를 누르면 입력 종료
break;
}
a_arr[i++] = ch;
}
a_arr[i] = 0; //문자열 마지막에는 null값을 넣어줘야한다.
return i; //i의 숫자가 문자열의 갯수다.
}
int main()
{
char arr[MAX];
int len;
printf("Input:");
len = ReturnString(arr);
printf("len: %d arr: %s",len ,arr);
return 0;
}
문자열 배열을 포인터로 바꾸고 입력받는 변수를 없애면 아래 코드와 같다.
#include<stdio.h>
#pragma warning(disable:4996)
#define MAX 64
int ReturnString(char*a_arr)
{
int i = 0;
while (i < MAX - 1) //마지막 배열에는 null값을 받아야하기 때문에
{
*(a_arr + i) = getchar(); //문자 1개를 입력받는다.
if (*(a_arr + i) == '\n') { //enter를 누르면 입력 종료
break;
}
i++;
}
*(a_arr + i) = 0; //문자열 마지막에는 null값을 넣어줘야한다.
return i;
}
int main()
{
char arr[MAX];
int len;
printf("Input:");
len = ReturnString(arr);
printf("len: %d arr: %s",len ,arr);
return 0;
}
728x90
반응형
'C,C++ > 개념 실습 프로그래밍' 카테고리의 다른 글
[c언어] 파일 경로에서 파일 이름만 가져오기 (0) | 2022.10.03 |
---|---|
[c언어]getchar 함수로 정숫값 입력받기 (0) | 2022.10.03 |
[c언어]중복없는 난수 생성하기 method_2 (0) | 2022.09.25 |
[c언어]중복없는 난수 생성하기 method_1 (1) | 2022.09.25 |
[c언어]구조체 내부의 특정 변수만 복사하기 (2) | 2022.09.25 |
Comments