Aca tengo la manera en que se deben usar los punteros con arreglos de tipo entero y con cadenas de tipo char... Pero...
Lo que quiero saber no es recorrer una cadena de tipo char[5] = {'H', 'E', 'L', 'L', 'O', '\0'};
sino una cadena de tipo string: string = "HELLO"; mediante el uso de punteros.
Código
/// PUNTEROS /// #include <iostream> using std::cout; using std::cin; using std::endl; // Aritmetica de punteros int main() { cout << "Aritmetica de punteros:\n\n"; int V[10] = {5,4,3,2,1}; //Declaramos arreglo de tipo int y lo inicializamos int *p1 = V; // asignamos un puntero de tipo int que apunte al arreglo 'V' // De esta manera solo estamos apuntando hacia el valor del primer indice del arreglo // en este caso seria el indice 0 que contiene el valor de 5. cout << "El valor del indice 0 del arreglo: " << *p1 << endl; cout << "La direccion del indice 0 del arreglo: " << p1 << endl; cout << "\nAccedemos a cada uno de los valores del arreglo con el puntero \n\n"; cout << "Valor del indice 1: " << *(p1 + 1) << " y su direccion es: " << p1+1 << endl; cout << "Valor del indice 2: " << *(p1 + 2) << " y su direccion es: " << p1+2 <<endl<<endl; cout << "Para recorrer todo el arreglo con punteros lo hago con un ciclo \n\n"; for(int i=0 ; i<10 ; i++) { cout << *(p1 + i) << endl; // imprimo los valores del arreglo } return 0; }
Código
/// PUNTEROS /// #include <iostream> using std::cout; using std::cin; using std::endl; int main() { cout << "Recorrer cadena de caracteres con punteros:\n\n"; cout << "Cadena = PUNTEROS \n"; char cadena[] = {'P','U','N','T','E','R','O','S','\0'}; char *p1 = cadena; // Declaro un puntero que apunte a cadena while(*p1 != '\0') // Cilo mientras que llegamos al final de la cadena { cout << *p1 << endl; // Imprimo cada caracter de la cadena p1++; // incremento en cada iteracion la direccion de memoria de cada caracter. } return 0; }
De antemano. Muchas Gracias por su colaboracion