Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/59.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在C编程中验证两个整数数组是否具有相同的长度?_C_Arrays - Fatal编程技术网

在C编程中验证两个整数数组是否具有相同的长度?

在C编程中验证两个整数数组是否具有相同的长度?,c,arrays,C,Arrays,这是我到目前为止没有用的东西 int password [4] ; int temp [4] ; printf("Enter password : ") ; Scanf ("%d" , &temp) ; if (password.lenght == temp.lenght ) { printf("The password is correct") ; } else { printf ("Try Again"); } 尝试改用字符串 char password[4]

这是我到目前为止没有用的东西

int password [4] ;

int temp [4] ;

printf("Enter password : ") ;

Scanf ("%d" , &temp) ;


if (password.lenght == temp.lenght ) {

printf("The password is correct") ;

}

else {

printf ("Try Again");

}

尝试改用字符串

char password[4] = "abc";
char temp[4];

scanf("%s", temp);
现在,这将为您提供字符串长度:

size_t temp_len = strlen(temp);

我相信,你们要做的是比较给定的数字是否是存储在密码中的数字。存储数字不需要数组。如果密码是字符串,则需要一个


要检查两个数字
a
b
的位数是否相同,只需在循环中将它们除以10,然后检查它们是否在同一时刻达到0。

根据对其他答案的注释,您需要检查是否有人输入了四位数的字符串。执行此操作的简单方法是使用
char
数组存储输入,并使用
strlen
获取输入字符串的长度:

#include <stdio.h>
#include <string.h>
...
char input[5];  // extra space for string terminator
printf( "Enter password: " );
if ( scanf( "%4s", input ) != 1 ) // read no more than four characters
{
  // error on input
}
else if ( strlen( input ) < 4 )
{
  // password too short
}
else
{
  // check password value
}
#包括
#包括
...
字符输入[5];//字符串终止符的额外空间
printf(“输入密码:”);
如果(scanf(“%4s”,输入)!=1)//读取的字符不超过四个
{
//输入错误
}
否则如果(strlen(输入)<4)
{
//密码太短
}
其他的
{
//检查密码值
}

password和temp是数组,而不是结构,因此它们没有成员,因此密码是非法的。*您在哪里输入
password
?我怀疑a比尝试在堆栈溢出时通过反复尝试学习更好。密码没有问题,如果长度与存储的长度相同,则密码可以是任何四位数字,因此最好建议以“字符串”扫描的安全方式:
scanf(“%3s”,temp)@alk对nitppicky吹毛求疵,应该是
scanf(“%3s”,temp)
Ha,beat you be secs@SouravGhosh:-PHow您可以将密码[4]处的字符初始化为字符串吗?或者,这将告诉您它们是否有不等的数字:
(a/b>=10)| |(b/a>=10)
否我正在尝试检查两个数组是否具有相同的长度,这是一个ATM程序,我必须验证输入的pin码是否是四位数。如果它是你在评论中写的,你不是在比较数组,只是比较数字。您可能会感到困惑,因为字符串表示为
char[]
。三位数字和四位数字将存储在一个类型为
int
的变量中。要检查一个数字是否为4位,只需比较它是否大于999且小于10000。因此,我在整个密码验证循环中使用了两个变量第一个是密码第二个是tempPassword,密码应该设置为什么才能工作。还是应该只使用一个变量?如何验证输入的管脚号是否为整数?为什么数组大小为5?@Dstk_1998:C-“字符串”始终带有尾随字符,即所谓的
0
-终止符,用于标记“字符串”的结尾。如果不是,它们不是“字符串”,而是普通的
字符
-数组。@Dstk_1998“如何验证输入的pin码是整数[?]”这是另一个问题。