전산학개론 과제..
#include <stdio.h>
#include <stdbool.h>
#include <stdlib.h>
#include<string.h>
//파라미터로 주어지는 문자열은 const로 주어집니다. 변경하려면 문자열을 복사해서 사용하세요
int solution(const char *s)
{
char str[10][6] = { "zero","one","two","three","four","five","six","seven","eight","nine" };
//배열자리마다 알맞은 수 선언
char number[50] = { 0 }, temp;
int i, j, m, leng = 0;
int answer = 0;
for (i = 0; i < strlen(s); i++)
{
temp = s[i];
if (temp >= '0' && temp <= '9')//문자가 0-9일때
{
number[leng++] = temp;
}
else
{
for (j = 0; j < 10; j++)
{
if (strncmp(s + i, str + j, 3) == 0)//최소 글자수 3
{
temp = j + '0';
number[leng++] = temp;
i += strlen(str[j]) - 1;//빠르게 찾기위해 str[i]의 글자수-1만큼만 앞당김
break;
}
}
}
}
m = 1;
for (i = strlen(number) - 1; i >= 0; i--, m *= 10)
{
answer += (number[i] - '0') * m;
}
return answer;
}
c언어는 0을 거짓으로 그 외의 숫자를 참으로 사용한다.
#include <stdio.h>
int main()
{
_Bool boolval = false;
printf("value is %d", boolval);
}
따라서 이렇게 작성하면 오류가 난다.
하지만
#include <stdio.h>
#include <stdbool.h>
int main()
{
_Bool boolval = false;
printf("value is %d", boolval);
}
이렇게 #include <stdbool.h> 를 선언하고 작성하면 1대신 true, 0대신 flase를 bool자료형에 저장할수 있다.
+) _Bool :bool자료형(ex int double같은 애랑 친구...(?? 이 표현이 맞나))
자주 쓰이는 함수
1.strlen
문자열의 길이를 계산한다.
사용법
길이를 저장할 변수 = strlen(문자열변수);
2.strcmp: string compare의 약자로 문자열을 비교한다.
사용법: 리턴값 = strcmp(비교대상1,비교대상2);
문자열을 비교한다는 뜻은 정확하게 말해서
문자열의 길이 비교가 아니라 문자열의 사전적 순서를 정하는 것이다.
만약 a와 b가 저장되어 있으면
사전적 순서에 의해 a가 b보다 앞에 있으므로
a가 더 작다고 판정이 난다.
판정시 결과값
비교대상1>비교대상2 ->1
비교대상1<비교대상2 ->-1
비교대상1==비교대상2 ->0