我正在學習C++,並且在使用/寫入函數時遇到了一些麻煩。需要幫助將數組元素/信息傳遞給函數C++
現在我正在嘗試驗證用戶提供的密碼的問題。
的要求是:
1大寫字母 1小寫字母 1號 至少6個字符
每個需求量的是指通過從主傳遞()來的函數來驗證。
我爲小寫字母寫了一個函數,我不斷收到錯誤消息,說有一個無法解析的外部錯誤。但是,當我將main_user_password傳遞給length函數時,它會返回正確的語句。
這是我不斷收到在Visual Studio中的錯誤:
錯誤3錯誤LNK2019:無法解析的外部符號 「布爾__cdecl小寫字母(char * const的)」(小寫@@ YA_NQAD @ Z?)在函數_main引用
錯誤4錯誤LNK1120:1周無法解析的外部
這是我寫的代碼到目前爲止
#include <iostream>
#include <string>
#include <cstring>
#include <cctype>
using namespace std;
bool length(char[]);
bool lowercase(char[]);
int main()
{
const int SIZE = 20;
char user_password[SIZE];
cout << "Please enter a password" << endl;
cout << "**********************************************" << endl;
cout << "Must contain at least 1 upper case letter" << endl;
cout << "Must contain at least 1 lower case letter" << endl;
cout << "Must contain at least 1 number" << endl;
cout << "**********************************************" << endl;
cin.getline(user_password, SIZE);
length(user_password);
lowercase(user_password);
return 0;
}
bool length(char password1[])
{
int length;
length = strlen(password1);
if (length < 6)
{
cout << "Password needs at least 6 characters" << endl;
}
else if (length < 6)
{
cout << "Character requirements met" << endl;
}
return password1;
}
bool lowercase(char password2)
{
if (!islower(password2))
{
cout << "Password requires at least 1 lower letter" << endl;
}
else if (islower(password2))
{
cout << "Lower case letter requirement met" << endl;
}
return password2;
}
使用std ::向量或std ::數組,而不是原始陣列 – Borgleader 2014-12-08 03:04:50
使用'的std :: string'代替字符數組的字符串和您的問題傳遞字符串爲數組消失。 – 2014-12-08 03:05:04
看看你如何在頂部聲明'lowercase()'函數,以及如何在底部定義相同的函數。他們應該有相同類型的參數,但他們是不同的。 – Galik 2014-12-08 03:08:59