Você está na página 1de 2

Uma vez que os apontadores so valores de um tipo definido no C, nada nos impede de declararmos e usarmos arrays de apontadores.

Para certas situaes eles so at muito teis. Imaginemos que queramos ordenar linhas de texto (strings) que se apresentam com c omprimentos muito diferentes. Uma forma bastante eficiente de fazer isso em memri a poder ser a que se esquematiza a seguir: - Armazenar todas as strings num nico array de caracteres em que se usa o carcter '\n' (newline) para separar as vrias linhas; - Armazenar apontadores num array diferente onde cada um deles aponta para o 1 carcter de cada linha; - Comparar as linhas usando a funo standard strcmp(); - Se duas linhas estiverem fora de ordem trocam-se apenas os apontadores e no os caracteres de cada linha; - Quando tudo estiver ordenado escrevem-se as linhas pela ordem com aparecem no array de apontadores. Escreva um programa que percorra um array de qualquer tipo, escrevendo o seu con tedo, utilizando apenas apontadores. Como alternativa procure um valor particular no array (usando apenas apontadores). Cdigo: #include <stdio.h> #include <stdlib.h> #include <string.h> int main(int argc, char *argv[]){ char *ptrStr, *pes; int t, existe = 0; char vectorPtr[80], vptr[80]; ptrStr = vectorPtr; pes = vptr; printf("\n\tDigite uma string: "); gets(ptrStr); printf("\n\tDigite um valor para pesquisar na string (%s): ", ptrStr); gets(pes); for(t = 0; ptrStr[t]; ++t) { if(ptrStr[t] == *pes) { existe = 1; } } existe == 1 ? printf("\n\tO valor \"%s\" existe na string ", pes) : printf("\n\t O valor \"%s\" nao existe na string ", pes); while(*ptrStr) { putchar(*ptrStr++); }

printf("\n\n\n"); system("pause"); return 0; }

Você também pode gostar