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 31 32 33 34 35 36 37 38 39 | #include <stdio.h> #include <string.h> #include <math.h> #include <stdlib.h> char* reverse(char* arr) { int len = strlen(arr); char* rev = (char*)malloc(sizeof(char)*2); for (int i = 0; i < len; i++) { rev[i] = arr[len - 1 - i]; } return rev; } int toInt(char* arr, int len) { int sum = 0; for (int i = 0; i < len; i++) { sum += (int)(arr[len - i - 1] - 48) * pow(10, i); } return sum; } int main() { char a[4] = { 0 }, b[4] = { 0 }; scanf("%s %s", &a, &b); char* ra = reverse(a); char* rb = reverse(b); char* re = (char*)malloc(sizeof(char) * 4); int lenA = strlen(a); int lenB = strlen(b); int intA = toInt(ra, lenA); int intB = toInt(rb, lenB); printf("%d", intA > intB ? intA : intB); } | cs |
strlen : NULL 을 만날때까지 세는 것. malloc 이랑 같이 쓰다보면 문제가 생기게 됨
malloc : 내부 값을 초기화 시키지 않기 때문에 오류 발생 가능. calloc 을 써주는게 좋다 (내부 초기화하므로)
배열 반환하려면, 지역변수로 반환해서는 안 됨. 반드시 메모리 할당을 해줘야됨(malloc, calloc)
'알고리즘 > 문자와 문자열' 카테고리의 다른 글
1316 그룹 단어 체크 (0) | 2020.01.04 |
---|---|
5622 다이얼 (0) | 2020.01.04 |
1157 단어공부 (0) | 2020.01.03 |
11654 아스키 코드 (0) | 2020.01.03 |
blurred vision 더블릿 (0) | 2019.03.01 |