C++のfindを使ってみる

findを使うと先頭から何番目にその文字があるかを探すことができる

実行結果

18446744073709551615
0
存在しません

ちなみにこれらのコードはどれも同じ動作をする。autoの動作が原因。

	if (str1.find("z") == 18446744073709551615) {
		std::cout << "存在しません" << std::endl;
	}

	if (str1.find("z") == -1) {
		std::cout << "存在しません" << std::endl;
	}

	if (str1.find("z") == std::string::npos) {
		std::cout << "存在しません" << std::endl;
	}
}

ソースコード

#include <iostream>

int main() {

	std::string str1 = "abcde";

	std::cout << str1.find("A") << std::endl; 
	std::cout << str1.find("a") << std::endl; 

	if (str1.find("z") == 18446744073709551615) {
		std::cout << "存在しません" << std::endl;
	}

	if (str1.find("z") == -1) {
		std::cout << "存在しません" << std::endl;
	}

	if (str1.find("z") == std::string::npos) {
		std::cout << "存在しません" << std::endl;
	}
}

コメント

タイトルとURLをコピーしました