在我的學校任務中,我必須用蠻力算法找到一個字符串。使用strcat的錯誤
如果長度是,例如,3這些是所有可能的組合: 一個 b Ç AA BA CA AB BB CB 交流 BC 立方厘米 AAA BAA CAA aba bba cba aca bca cca aab BAB 駕駛室 ABB BBB CBB ACB BCB 建行 AAC BAC CAC ABC BBC CBC ACC BCC CCC
我有問題strcat
。
這裏是代碼。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
# define PASS_SIZE 3
char letters[] = "abc";
char test[] = "acb";
int count = 0;
int nbletters = sizeof(letters)-1;
int bruteForce(int size);
int main() {
int i = 0;
int notFound = 1;
for (i = 1; i <= PASS_SIZE && notFound == 1; i++){
notFound = bruteForce(i);
};
printf("Count: %d\n",count);
return -1;
}
int bruteForce(int size){
int i;
int entry[size];
char pass[50];
char *temp;
for(i=0 ; i<size ; i++){
entry[i] = 0;
}
do {
for(i=0 ; i<size ; i++){
temp = letters[entry[i]];
printf("%c", temp);
strcat(pass,temp); /*Getting error here*/
}
count++;
printf("\n");
/*Compare pass with test*/
if (strcmp (pass,test) == 0){
return 0;
};
for(i=0 ; i<size && ++entry[i] == nbletters; i++){
entry[i] = 0;
}
} while(i<size);
return 1;
}
也許蠻力算法不是最好的算法。
爲什麼不是strcat正常工作,我正在分段排序?
*「爲什麼不是strcat工作?」是一個相當模糊的陳述。請說明您遇到的確切錯誤和行爲。 – Zeta
@Zeta對不起。程序崩潰。分割錯誤 – Favolas