퀴즈 질문 |
|
|
예상답변/설명 |
C# 에서 문자열을 숫자로 변경하기 위해서는 보통 int.Parse()를 사용한다. 하지만, 이 문제는 자신의 함수를 작성할 것을 요청했으므로, 문자열을 파라미터로 받아들여 정수를 리턴하는 함수를 아래와 같이 작성할 수 있다.
int StrToInt(string s)
{
if (string.IsNullOrEmpty(s)) return 0;
int i = 0, num = 0;
int sign = 1;
char[] a = s.ToCharArray();
if (a[i] == '-')
{
i++;
sign = -1;
}
while (i < a.Length)
{
num *= 10;
num += a[i] - '0';
i++;
}
return num * sign;
}
기본적으로 우선 - 사인 처리를 하고, 해당 문자열을 문자 배열로 변경한 후, 각 문자를 숫자로 변경하면서 10배 처리를 진행(10진수이므로)한다. 숫자 변환이 끝나면 사인을 처리해 준다. 참고로, 문자 배열로 변경하지 않고 string의 Substring()을 사용하거나 String 인덱서를 사용할 수도 있다.
|