无法将数组值与整数进行比较
Cant compare array value with an integer
我在将数组值与 integer.But 进行比较时出错,谁能告诉我如何将数组的值存储在单独的变量中。
让我们假设 array[0]
有 123
而 array[1]
有 jn12jn3jk2=
。
我想在变量 keysum 中存储 123,在变量 hash 中存储 jn12jn3jk2=。
1 #include<stdio.h>
2 #include<string.h>
3 #include<ctype.h>
4
5
6 int main(){
7 int i=0,number=0,digit;
8 char crypt[10000],c;
9 char *array[2];
10 printf("Enter Crypted Text> ");
11 fgets(crypt,10000,stdin);
12 char * token = strtok(crypt, "'");
13 while( token != NULL ) {
14 array[i++]=token;
15 token = strtok(NULL, "'");
16 }
17 int keysum = array[0];
18 int k=0;
19 printf("Enter Key> ");
20 scanf("%d",&k);
21 printf("KEY= %d\n",k);
22
23
24 //extracting key digits
25 int kerray[6];
26 int key=5;
27 int digit1=0;
28 int digit2=0;
29 int digitin=0;
30 int digitout=0;
31 for (i = 3; i >= 0; i--)
32 {
33 kerray[i] = k % 10;
34 k /= 10;
35 }
36 digit1=kerray[0];
37 digit2=kerray[1];
38 digitin=kerray[2];
39 digitout=kerray[3];
40
41 //4key ofc
42 int ofc=0;
43 ofc=(digit1+digitout)*(digit2+digitin);
44
45
46 //key check
47 if( ofc == array[0])
48 {
49 printf("keymatch");
50 }
51 else
52 {
53 printf("no match");
54 }
55
56 return 0;
57 }
错误:
decode.c: In function 'main':
decode.c:17:18: warning: initialization of 'int' from 'char *' makes integer from pointer without a cast [-Wint-conversion]
17 | int keysum = array[0];
| ^~~~~
decode.c:47:13: warning: comparison between pointer and integer
47 | if( ofc == array[0])
测试以下代码:
#include<stdio.h>
#include<string.h>
#include<ctype.h>
int main()
{
int i = 0, number = 0, digit;
char crypt[10000], c;
char *array[2];
printf("Enter Crypted Text> ");
fgets(crypt, 10000, stdin);
char *token = strtok(crypt, "'");
while (token != NULL)
{
array[i++] = token;
token = strtok(NULL, "'");
}
int keysum = (int) array[0];
int k = 0;
printf("Enter Key> ");
scanf("%d", &k);
printf("KEY= %d\n", k);
//extracting key digits
int kerray[6];
int key = 5;
int digit1 = 0;
int digit2 = 0;
int digitin = 0;
int digitout = 0;
for (i = 3; i >= 0; i--)
{
kerray[i] = k % 10;
k /= 10;
}
digit1 = kerray[0];
digit2 = kerray[1];
digitin = kerray[2];
digitout = kerray[3];
//4key ofc
int ofc = 0;
ofc = (digit1 + digitout) * (digit2 + digitin);
//key check
if ((char *) ofc == array[0]) {
printf("keymatch");
} else {
printf("no match");
}
return 0;
}
我在将数组值与 integer.But 进行比较时出错,谁能告诉我如何将数组的值存储在单独的变量中。
让我们假设 array[0]
有 123
而 array[1]
有 jn12jn3jk2=
。
我想在变量 keysum 中存储 123,在变量 hash 中存储 jn12jn3jk2=。
1 #include<stdio.h>
2 #include<string.h>
3 #include<ctype.h>
4
5
6 int main(){
7 int i=0,number=0,digit;
8 char crypt[10000],c;
9 char *array[2];
10 printf("Enter Crypted Text> ");
11 fgets(crypt,10000,stdin);
12 char * token = strtok(crypt, "'");
13 while( token != NULL ) {
14 array[i++]=token;
15 token = strtok(NULL, "'");
16 }
17 int keysum = array[0];
18 int k=0;
19 printf("Enter Key> ");
20 scanf("%d",&k);
21 printf("KEY= %d\n",k);
22
23
24 //extracting key digits
25 int kerray[6];
26 int key=5;
27 int digit1=0;
28 int digit2=0;
29 int digitin=0;
30 int digitout=0;
31 for (i = 3; i >= 0; i--)
32 {
33 kerray[i] = k % 10;
34 k /= 10;
35 }
36 digit1=kerray[0];
37 digit2=kerray[1];
38 digitin=kerray[2];
39 digitout=kerray[3];
40
41 //4key ofc
42 int ofc=0;
43 ofc=(digit1+digitout)*(digit2+digitin);
44
45
46 //key check
47 if( ofc == array[0])
48 {
49 printf("keymatch");
50 }
51 else
52 {
53 printf("no match");
54 }
55
56 return 0;
57 }
错误:
decode.c: In function 'main':
decode.c:17:18: warning: initialization of 'int' from 'char *' makes integer from pointer without a cast [-Wint-conversion]
17 | int keysum = array[0];
| ^~~~~
decode.c:47:13: warning: comparison between pointer and integer
47 | if( ofc == array[0])
测试以下代码:
#include<stdio.h>
#include<string.h>
#include<ctype.h>
int main()
{
int i = 0, number = 0, digit;
char crypt[10000], c;
char *array[2];
printf("Enter Crypted Text> ");
fgets(crypt, 10000, stdin);
char *token = strtok(crypt, "'");
while (token != NULL)
{
array[i++] = token;
token = strtok(NULL, "'");
}
int keysum = (int) array[0];
int k = 0;
printf("Enter Key> ");
scanf("%d", &k);
printf("KEY= %d\n", k);
//extracting key digits
int kerray[6];
int key = 5;
int digit1 = 0;
int digit2 = 0;
int digitin = 0;
int digitout = 0;
for (i = 3; i >= 0; i--)
{
kerray[i] = k % 10;
k /= 10;
}
digit1 = kerray[0];
digit2 = kerray[1];
digitin = kerray[2];
digitout = kerray[3];
//4key ofc
int ofc = 0;
ofc = (digit1 + digitout) * (digit2 + digitin);
//key check
if ((char *) ofc == array[0]) {
printf("keymatch");
} else {
printf("no match");
}
return 0;
}