Written by coh at home

문자열 본문

languages/c++

문자열

och 2022. 5. 15. 20:55

c++에서는 c에서 쓰던 문법들을 모두 지원합니다. 따라서 다음과 같은 형식으로도 사용이 가능합니다.

char a[6]{"hello"};
char *a = "cheol5";

그렇지만 c++은 객체지향언어이기 때문에 문자열을 처리하는 클래스타입을 지원합니다. 

std::string name{"cheolho"};

name 변수는 이제 원래 c에서의 배열처럼 변경가능합니다. 

단 전통적인 c에서는 문자열의 끝을 '\n'로 지정해주었는데 std::string에서는 

null character를 이용하면 안 됩니다. 이제부터 널문자는 더 이상 문자열의 끝을 나타내는 것이 아니기 때문입니다. 

 

문자열 갯수를 파악하기 위해서 메소드로 .size or .length를 지원합니다. 

#include <iostream>
using namespace std::literals;
// 주소보다는 references 통해 전달받음.
int atoi(const std::string& word){
	int ret{0};
	bool isNegative(false);
	int i{0};
	if(word[0] =='-') {
		isNegative = true;
		++i;
	}
	for (; i<word.size(); i++){
		int digit{static_cast<int>(word[i]-'0')};
		ret = ret *10 +digit;
	}
	return isNegative?  -ret:ret;
}

int main() {
	std::cout << atoi("1234"s) << "\n";
	std::cout << atoi("-1234"s) << "\n";
	return 0;
}

'languages > c++' 카테고리의 다른 글

클래스  (0) 2022.05.16
[c++]배열, Leetcode26,27  (0) 2022.04.07
bit 연산  (0) 2022.04.04
부동소수 반올림 오차  (0) 2022.04.03
참조변수, 축소변환, auto, decltype  (0) 2022.04.03