c언어 과제 개념 정리

암영·2022년 5월 3일
0

c언어

목록 보기
10/21

전산학개론 과제..

#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;
}

#include <stdbool.h>

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같은 애랑 친구...(?? 이 표현이 맞나))

#include<string.h>

자주 쓰이는 함수
1.strlen
문자열의 길이를 계산한다.
사용법
길이를 저장할 변수 = strlen(문자열변수);
2.strcmp: string compare의 약자로 문자열을 비교한다.
사용법: 리턴값 = strcmp(비교대상1,비교대상2);

문자열을 비교한다는 뜻은 정확하게 말해서
문자열의 길이 비교가 아니라 문자열의 사전적 순서를 정하는 것이다.
만약 a와 b가 저장되어 있으면
사전적 순서에 의해 a가 b보다 앞에 있으므로
a가 더 작다고 판정이 난다.

판정시 결과값
비교대상1>비교대상2 ->1
비교대상1<비교대상2 ->-1
비교대상1==비교대상2 ->0

profile
just do! -얼레벌레 굴러가는 공대생

0개의 댓글