int main () { char a[MAX]; char b[MAX]; a[0] = 2; b[0] = 2; for (int i = 1; i < MAX; i++) { a[i] = nondet_char(); b[i] = nondet_char(); } cmp_str(a, b, MAX); return 0; }
int main() { char str1[MAX], str2[MAX]; int cont, i, j; cont = 0; for (i=0; i<MAX; i++) { str1[i]=nondet_char(); } str1[MAX-1]= '\0'; j = 0; // Copia str1 inversa para str2 for (i = MAX - 1; i >= 0; i--) { str2[j] = str1[0]; j++; } //__ESBMC_assume(i<0); j = MAX-1; for (i=0; i<MAX; i++) { assert(str1[i] == str2[j]); j--; } }
main() { char string_A[MAX], string_B[MAX]; int i, j, nc_A, nc_B, achou=0; for(i=0; i<MAX; i++) string_A[i]=nondet_char(); __ESBMC_assume(string_A[MAX-1]=='\0'); for(i=0; i<MAX; i++) string_B[i]=nondet_char(); __ESBMC_assume(string_B[MAX-1]=='\0'); // captura o número de caracteres de da string A nc_A = 0; while(string_A[nc_A]!='\0') nc_A++; // captura o número de caracteres de da string B nc_B = 0; while(string_B[nc_B]!='\0') nc_B++; __ESBMC_assume(nc_B >= nc_A); i=j=0; while((i<nc_A) && (j<nc_B)) { if(string_A[i] == string_B[j]) { i++; j++; } else { i = i-j+1; j = 0; } } achou = (j>nc_B-1); assert(achou == 0 || achou == 1); }