E07.1 Escreva uma função que decida se duas strings de mesmo comprimento diferem em exatamente uma posição.
E07.2 O que há de errado com o seguinte fragmento de código?
char *a, *b; a = "abacate"; b = "uva"; if (a < b) printf ("%s vem antes de %s no dicionário", a, b); else printf ("%s vem depois de %s no dicionário", a, b);
E07.3 Discuta as diferenças entre os três fragmentos de código a seguir:
char a[8], b[8]; strcpy (a, "abacate"); strcpy (b, "banana");
char *a, *b; a = malloc (8); strcpy (a, "abacate"); b = malloc (8); strcpy (b, "banana");
char *a, *b; a = "abacate"; b = "banana";
E07.4 Escreva uma função que receba uma string s e inteiros positivo i e j e devolva uma string com o mesmo conteúdo que o segmento s[i..j]. Escreva duas versões: na primeira, sua função não deve alocar novo espaço e pode alterar a string s que recebeu; na segunda, sua função deve devolver uma cópia do segmento s[i..j] e não pode alterar a string s que recebeu.
E07.5 Escreva uma função que receba um inteiro positivo n e devolva a string de 0s e 1s que represente n em notação binária. Por exemplo, o inteiro 123 deve ser convertido em "1111011".
E07.6 Escreva uma função que receba uma string de 0s e 1s, interprete essa string como um número natural em notação binária e devolva o valor desse número. (Se a string for longa demais, descarte os últimos dígitos.) Por exemplo, a string "1111011" deve ser convertida no inteiro 123.