카테고리 없음

04 - 1 C++ 보충 2-6챕터

pp4037 2026. 4. 1. 20:09
// Main.cpp
// 챕터 6-1 : std::string 
// std::string
// 필요에 따라 길이가 변할 수 있다.
// 문자열을 수정할 수 있는 여러 API도 제공한다.

#include <iostream>
#include <string>

int main(void)
{
	std::string FirstName;
	std::string LastName;
	std::string FullName;
	/* in C.
	char FirstName[20];
	char LastName[20];
	char FullName[20];
	*/

	// 대입 연산과 이어붙이기 연산이 가능합니다.
	std::cout << "What is your first name? ";
	std::cin >> FirstName;
	FullName = FirstName; // FirstName의 값을 FullName에 대입시킨다.
	std::cout << "What is your last name? ";
	std::cin >> LastName;
	FullName = FirstName + " " + LastName; // FullName 이라는 string 타입 변수에 FirstName의 값과 " " 값, LastName 변수의 값을 합쳐서 대입시킨다.
	std::cout << FullName << std::endl; // FirstName에 김, LastName에 철수가 들어갔다면 예상 출력물은 김 철수

	std::string FriendFullName = "Lee JH";
	std::cout << "Your full name is " << FullName << '(' << FullName.length() << ')' << std::endl; // 문자열의 길이가 얼마나 되는지 보는 연산자
	// '(' << 문자열.length() << ')' 구조
	// 이 때 띄어쓰기 부분도 포함시켜서 길이를 잰다.
	std::cout << "Friend's full name is " << FriendFullName << '(' << FriendFullName.length() << ')' << std::endl;

	if (FullName == FriendFullName) // 길이 비교는 아닙니다.
	{// 만약 FullName과 FriendFullName의 값이 같다면(문자열이 같다면)
		std::cout << "Same name." << std::endl;
	}
	else if (FullName < FriendFullName) // FullName의 값이 FriendFullName의 값보다 작다면...?
	{
		std::cout << "Friend name is prior in lexical-order." << std::endl;
	}
	else
	{
		std::cout << "Your name is prior in lexical-order." << std::endl;
	}

	return 0;
}