我非常新的這個和C語言編程。這是我的第一年,對我來說事情不是很清楚。希望我能很快變好。如何給定的字符串比較結果
我在這裏有一個代碼,我輸入一個數字,我收到基於我有如下表結果。 我想知道:如果我有一個給定字符串(在代碼是:測試[7] =「2 B 1 C」) 如何可以比較的結果,我必須這個字符串,看看它是否是同樣的,以打印=好?
這是很難解釋,所以請讓我知道如果我不清楚我的問題。您可以測試代碼以瞭解它的工作原理。
#include <stdio.h>
#include <string.h>
void initialize(int poss[1296][4]);
int main()
{
int table[1296][4];
char str[5];
char tmp[5];
int i, j, k;
int bull = 0;
int cow = 0;
char test[7]={"2 B 0 C"};
initialize(table);
printf("Enter 4 digits: ");
scanf("%s", str);
for (i=0; i<1296; i++) // building this table
{
strcpy(tmp, str); // copying string
for (j=0; j<4; j++)
{
for (k=0; k<4; k++)
{
if (table[i][j]==tmp[k]-'0' && j==k) // gets the string as an integer
{
tmp[k] = -1;
bull++;
break;
}
else if (table[i][j]==tmp[k]-'0' && j!=k)
{
tmp[k] = -1;
cow++;
break;
}
}
}
printf ("%d B %d C\n\n", bull, cow);
bull = 0;
cow = 0;
}
}
//------------------------------------TABLE---------------------------------//
void initialize(int poss[1296][4])
{
int i=0;
int j, k=0;
int m;
while (i<=5)
{
for (j=0; j<216 ; j++)
{
poss[k][0]=i;
k++;
}
i++;
}
k=0;
i=0;
j=0;
while (k<1296)
{
for (m=0; m<6; m++)
{
for (j=0; j<6; j++)
{
for (i=0; i<36 ; i++)
{
poss[k][1]=j;
k++;
}
}
}
}
k=0;
i=0;
j=0;
m=0;
while (k<1296)
{
for (j=0; j<6; j++)
{
for (i=0; i<6; i++)
{
poss[k][2]=j;
k++;
}
}
}
k=0;
i=0;
j=0;
m=0;
while (k<1296)
{
for (i=0; i<6; i++)
{
poss[k][3]=i;
k++;
}
}
}
只是要清楚用戶輸入一個號碼,根據它給表的結果。 (表給出1296個可能性) 示例: 1245 //來自用戶 1354 = 1 B 2 C //(來自表) – user3117119
@userXXX您是否在尋找'strcmp()'函數? – 2013-12-18 22:50:17
是的,但我想要它與我所有的結果進行比較 – user3117119