일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- c#
- C++
- Flutter
- gitlab
- 구조체
- c언어
- 깃
- jupyter
- git
- Algorithm
- C언어 포인터
- 플러터
- 도커
- C# delegate
- Python
- HTML
- docker
- dart 언어
- 포인터
- Houdini
- 유니티
- 다트 언어
- jupyter lab
- Unity
- github
- c# 윈폼
- vim
- c# winform
- Data Structure
- c# 추상 클래스
Archives
- Today
- Total
nomad-programmer
[C] atoi 함수 예제 본문
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
// 최대 길이 설정하여 arr에 문자열 저장
int GetString(char* arr, int limit) {
for (int i = 0; i < limit; i++) {
arr[i] = getchar();
if (arr[i] == '\n') {
arr[i] = '\0';
return 1;
}
}
// 표준 입력 버퍼를 비운다.
rewind(stdin);
arr[0] = '\0';
return 0;
}
// atoi 함수의 기능을 새롭게 정의하였다.
int Str2Num(char* arr) {
int res = 0;
int cnt = 0;
while (arr[cnt] != '\0') {
res = (res * 10) + (arr[cnt] - '0');
cnt++;
}
return res;
}
int main(void) {
char str_num1[20];
char str_num2[20];
int state;
int num1, num2;
state = GetString(str_num1, sizeof(str_num1)/sizeof(char));
if (!state) {
puts("입력 문자열이 너무 깁니다.");
return 5;
}
// num1 = atoi(str_num1);
num1 = Str2Num(str_num1);
state = GetString(str_num2, sizeof(str_num2)/sizeof(char));
if (!state) {
puts("입력 문자열이 너무 깁니다.");
return 5;
}
// num2 = atoi(str_num2);
num2 = Str2Num(str_num2);
printf("%d + %d = %d\n", num1, num2, num1 + num2);
return 0;
}
atoi 표준 함수는 숫자로된 문자열을 정수형 숫자로 변환시켜준다.
이런 기능을 새롭게 만든 예제이다.
'Programming > C' 카테고리의 다른 글
[C] 2차원 배열의 주소 값을 저장할 수 있는 포인터 (0) | 2020.06.10 |
---|---|
[C] int형 배열의 요소를 원하는 바이트만큼 변경 (0) | 2020.06.10 |
[C] void 형 포인터 (0) | 2020.06.09 |
[C] 1byte씩 읽는 포인터, 리틀 엔디안, 빅 엔디안 (0) | 2020.06.09 |
[C] const (상수화) (0) | 2020.06.09 |
Comments