我试图检查为password_entered输入的值是否在其中的任何位置包含数字。
但是,我遇到了一些错误:
当我真的试图传递getDefaultProps()
时,编译器抱怨我在这里传递int
:
scanf("%s",password_entered);
这一行抱怨说我使用的是冲突类型:
char CD(char password_entered)
(由于某种原因,这段代码看起来不像代码 - 任何帮助,非常感谢)。
char
更新后的代码:
我仍然收到错误:int main()
{
char password_entered[20]; //max is 20 char
char CD(char password_entered[]);
printf("Please enter a password");
scanf("%s", password_entered);
if (CD(password_entered)){
printf("You entered a password with a digit!");
}
return 0;
}
char CD(char password_entered) {
for(i=0; i<=strlen(password_entered); i++){
if(isdigit(password_entered)){
//contains a digit
return '1';
}
else{
return 0;
}
}
}
&#34;错误:预期&#39 ;;&#39;,&#39;,&#39; ,或者&#39;)&#39;
我在这里做错了什么?
谢谢。
答案 0 :(得分:1)
首先,将password_entered声明为char数组:
char password_entered[20];
您正在将一个字符串传递给CD:
while(CD(password_entered)!= 1);
并抓取char中的值:
char CD(char password_entered)
password_entered
是一个char数组,而不是char。
它应该是char CD(char[] password_entered)
你的最后一个功能:
if(isdigit(password_entered))
{
//contains a digit
return '1';
}
else{
return '1';
}
应该是
if(isdigit(password_entered[i])){
//contains a digit
return '1';
}
else{
return '1';
}
这就是你的代码的样子:
int main()
{
//int password_min=6;
char password_entered[20]; //max is 20 char
//functions
bool CD(char password_entered);
// It should be declared above
// do{
// printf("Please enter a password");
// scanf("%s", password_entered); // you are reading in an array, which is not correct
// }
// while( CD(password_entered) != 1 );
printf("Please enter a password");
scanf("%s", password_entered);
if ( CD(password_entered))
{
// a password
}
return 0;
}
// Check for digits in password_entered var
char CD(char[] password_entered) {
int flag = 0;
for(i=0; i<=strlen(password_entered); i++){
if(isdigit(password_entered)){
//contains a digit
return '1';
}
else{
flag = 1;
break;
}
}
if ( flag )
return -1;
else
return 1;
}
编辑最终:这是你的程序应该是这样的方式:
#include <stdio.h>
#include <string.h>
int main()
{
char password_entered[20]; //max is 20 char
//functions
char CD(char password_entered[]);
//do{}
printf("Please enter a password");
scanf("%s", password_entered);
//}
//while( CD(password_entered) != 1 );
if (CD(password_entered)){
printf("You entered a password with a digit!");
}
return 0;
}
// Check for digits in password_entered var
char CD(char password_entered[]) {
int i;
for(i=0; i<=strlen(password_entered); i++){
if(isdigit(password_entered)){
//contains a digit
return '1';
}
else{
return 0;
}
}
}