
C++에서 문자열의 길이를 확인하는 함수는 `std::strlen()` 함수입니다. `std::is_long()` 함수는 C++의 표준 라이브러리에서 제공하는 함수가 아닙니다. `std::is_long()` 함수는 C++의 `std::is_same` 함수와 `std::is_integral` 함수를 합성한 함수로, `long` 타입과 같은 타입을 확인하는 함수입니다.
`std::is_long(str)` 함수는 항상 `false`를 반환하는 이유는 `str`은 문자열이기 때문에 `long` 타입과 같은 타입이 아니기 때문입니다.
`strlen(str)` 함수를 사용하여 문자열의 길이를 확인하는 것이 가능합니다. `strlen(str)` 함수는 C++의 표준 라이브러리에서 제공하는 함수로, 문자열의 길이를 반환합니다.
위 코드를 개선하여 `is_long` 함수 대신에 다른 함수를 사용하여 문자열의 길이를 확인하는 방법은 다음과 같습니다.
#hostingforum.kr
cpp
#include
#include
int main() {
char str[] = "Hello, World!";
if (strlen(str) > 0) {
std::cout << "문자열의 길이는 " << strlen(str) << "입니다." << std::endl;
} else {
std::cout << "문자열의 길이는 " << strlen(str) << "이 아닙니다." << std::endl;
}
return 0;
}
위 코드를 개선하여 문자열의 길이를 확인하는 함수를 직접 구현하는 방법은 다음과 같습니다.
#hostingforum.kr
cpp
#include
size_t strlen(const char* str) {
size_t length = 0;
while (*str != ' ') {
length++;
str++;
}
return length;
}
int main() {
char str[] = "Hello, World!";
if (strlen(str) > 0) {
std::cout << "문자열의 길이는 " << strlen(str) << "입니다." << std::endl;
} else {
std::cout << "문자열의 길이는 " << strlen(str) << "이 아닙니다." << std::endl;
}
return 0;
}
위 코드에서 `strlen` 함수는 `const char*` 타입의 문자열을 입력받아 그 길이를 반환하는 함수입니다. `while` 루프를 사용하여 `\0`이 아닌 문자를 찾을 때까지 루프를 반복하고, `\0`이 나타나면 루프를 종료하여 문자열의 길이를 반환합니다.
2025-05-30 03:47