Help using .find_first_not_of to check true or false.

It runs well now but my I only have 2 problems...
1.even if I press Hi1234 still shows that i need lowercase,upper and number.
2.doesnt recognize the true for the program to end.

PS...i know there are other methods but our teacher told us to use the find() methods.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
 #include <iostream>
#include <string>

using namespace std;


bool check_password(const string& password);
bool check_input(const string& password, const string& upper, const string& number, const string& lower);

int main()
{


	int length;
	string password;
	string lower , number;
	string upper;

	cout << "Write a password: \n"
		"Must Have at least one Uppercase letter\n"
		"At least one Number\n"
		"Please enter 6 - 10 characters: " << endl;
	
	
	
	
		getline(cin, password);
		length = password.size();




		
			if(check_password(password) == false)
			{
				cout << "Must have 6 - 10 digits. Please re-enter your password." << endl;
				getline(cin, password);
				length = password.size();

			}
			

		
			while (check_input(password, lower, number, upper) != string::npos)
			{
				cout << "Try Again\n" << endl;
					getline(cin, password);
					length = password.size();

				
			while (check_password(password) == false)
				{
					cout << "Must have 6 - 10 digits." << endl;
					getline(cin, password);
					length = password.size();
				}
			
			}
			
			while (check_input(password, lower, number, upper) != string::npos)
				{
					cout << "Good Job";
				}


			system("pause");

}

bool check_password(const string& password)

{
	
	if (password.length() < 6 || password.length() > 10)
			
	{
		return false;			
	}
	

	else
	{
		return true;
	}

}

bool check_input(const string& password,  const string& upper, const string& number, const string& lower)
{
	
	
	 lower == ("abcdefghijklmnopqrstuvwxyz");
	 number == ("0123456789");
  	 upper == ("ABCDEFGHIJKLMNOPQRSTUVWXYZ");
	 
	
	

		 if (password.find_first_not_of(upper) != string::npos)
		 {
			 cout << "Must contain an uppercase letter." << endl;

		 }

		 if (password.find_first_not_of(lower) != string::npos)
		 {
			 cout << "Must contain a lowercase. " << endl;

		 }

		 if (password.find_first_not_of(number) != string::npos)
		 {
			 cout << "Must contain a number. \n" << endl;
			 return true;
		 }
	
	

}





Your conditions on lines 99, 105, and 111 are backwards.

You are not using return statements correctly.
Im only in one month of class , can you tell me how it goess , this confuses me a bit the "true or false talk"
Boolean logic is a fundamental concept in many fields and it is essential that you understand it. What specifically is confusing to you?
No worries I already worked it out , thanks anyway :)
Heres the code so you can see if you want.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
#include <iostream>
#include <string>

using namespace std;


bool check_password(const string& password);


bool check_pass(const string password);
bool check_upper(const string password);
bool check_number(const string password);
bool check_lower(const string password);


int main()
{

	string username;
	int length;
	string password;
	string lower, number;
	string upper;

	cout << "Welcome: User1 \n"
		"What's your Password? \n"
		"Must Have at least one Uppercase letter\n"
		"At least one Number\n"
		"Please enter 6 - 10 characters: " << endl;



	
	getline(cin, password);
	length = password.size();


	check_pass(password);


	while (check_password(password) == false)
	{
		cout << "Must have 6 - 10 digits. Please re-enter your password." << endl;
		getline(cin, password);
		length = password.size();

		check_pass(password);
	}

	

	while (check_upper(password) == false || check_number(password) == false || check_lower(password) == false)
	{

		
		cout << "Try Again\n" << endl;
			getline(cin, password);
			length = password.size();

			check_pass(password);
	
	while (check_password(password) == false)
			{
				cout << "Must have 6 - 10 digits." << endl;
				getline(cin, password);
				length = password.size();
			
				check_pass(password);
			}

	}
		

	system("pause");
	}

	bool check_password(const string& password)

	{

	if (password.length() < 6 || password.length() > 10)

		{
			return false;
		}
	else
		{
			return true;
		}
	}

	
	bool check_upper(const string password)
	{

	if (password.find_first_not_of("abcdefghijklmnopqrstuvwxyz0123456789 ") == string::npos)

		{
			cout << "Must contain an uppercase letter." << endl;
			return false; 
		}
		
		return true;
	}

	bool check_number(const string password)
	{

	if (password.find_first_not_of("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz ") == string::npos)

		{
			cout << "Must contain a number." << endl;
			return false;
		}
		
		
			return true;

		
	}

	bool check_lower(const string password)
	{

	if (password.find_first_not_of("ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789 ") == string::npos)

		{
			cout << "Must contain an lowercase letter." << endl;
			return false;
		}
		
		return true;
	}
	
	
	bool check_pass(const string password)

	{

		bool has_number = check_number(password);
		bool has_Upper = check_upper(password);
		bool has_lower = check_lower(password);


		if (has_number == true && has_Upper == true && has_lower == true)

		{ 

			cout << "\nLogged In as User1\n\n";
			return true;

		}

		return false;
	}
Topic archived. No new replies allowed.