오븐 노트

[C++] 연습 문제 (문자열) #1 ~ 2 본문

Develop/C++

[C++] 연습 문제 (문자열) #1 ~ 2

오 븐 2022. 8. 16. 22:24

코딩 테스트 출제 가능성

#include <iostream>
using namespace std;

// 문제1) 문자열 길이를 출력하는 함수 
int StrLen(const char* str)
{
	// str라는 문자열의 길이를 반환
	int count = 0;

	while (str[count] != '\0')
		count++;

	return count;
}

// 문제2) 문자열 복사 함수
char* StrCpy(char* dest, char* src)
{
	// #1 배열 형식
	int count = 0;
	 
	while (src[count])
	{
		dest[count] = src[count];
		count++;
	}
	 
	dest[count] = '\0';
	 
	return dest;

	// #2 포인터 형식
	//char* ret = dest;

	//while (*src)
	//{
	//	*dest++ = *src++;
	//	//*dest = *src;
	//	//dest++;
	//	//src++;
	//}

	//*dest = '\0';

	//return ret;
}

// 문제3) 문자열 덧붙이는 함수
char* StrCat(char* dest, char* src)
{
	// #1 배열 형식
	int len = StrLen(dest);

	int i = 0;
	
	while (src[i])
	{
		dest[len + i] = src[i];
		i++;
	}

	dest[len + i] = '\0';

	return dest;

	// #2 포인터 형식
	//char* ret = dest;

	//while (*dest)
	//	dest++;

	//while (*src)
	//	*dest++ = *src++;

	//*dest = '\0';

	//return ret;
}

// 문제4) 두 문자열을 비교하는 함수
int StrCmp(char* a, char* b)
{
	int i = 0;

	while (a[i] || b[i])
	{
		if (a[i] > b[i])
			return 1;
		if (a[i] < b[i])
			return -1;
		i++;
	}

	return 0;
}

// 문제5) 문자열을 뒤집는 함수
void ReverseStr(char* str)
{
	int len = StrLen(str);

	for (int i = 0; i < len / 2; i++)
	{
		int temp = str[i];
		str[i] = str[len - 1 - i];
		str[len - 1 - i] = temp;
	}
}

#pragma warning(disable: 4996)
int main()
{
	const int BUF_SIZE = 100;
	char a[BUF_SIZE] = "Hello";
	char b[BUF_SIZE];
	char c[BUF_SIZE] = "World";
	char d[BUF_SIZE] = "Hella";

	//int len = StrLen(a);
	//StrCpy(b, a);
	//StrCat(a, c);
	//int value = StrCmp(a, d);

	ReverseStr(a);
	cout << a << endl;

	return 0;
}

[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문 - 인프런 | 강의
 
C++ 카테고리의 글은 인프런 Rookiss님의 강의를 공부하며 정리하는 내용입니다.
이미 알고 있는 내용도 다시 정리 되어있을 수 있습니다.

 

모든 글은 제가 공부하기 위해 작성합니다.

'Develop > C++' 카테고리의 다른 글

[C++] 파일 분할 관리  (0) 2022.08.29
[C++] 연습문제 (달팽이)  (0) 2022.08.22
[C++] TextRPG #3  (0) 2022.08.13
[C++] 포인터 마무리  (0) 2022.07.15
[C++] 다차원 배열  (0) 2022.07.15