Hola a todos, estoy intentando resolver un ejercicio de c++ que dice lo siguiente:
"Escribir un programa con una función que calcule la longitud de una cadena de caracteres. El nombre de la función será LongitudCadena, debe devolver un int, y como parámetro de entrada debe tener un puntero a char.
En esta función no se pueden usar enteros para recorrer el array, usar sólo punteros y aplicar aritmética de punteros.
En main probar con distintos tipos de cadenas: arrays y punteros."
Supongo que no vale esto de recorrer el array con un entero y luego devolver dicho entero, por tanto he probado con esto:
Seguro que hay una forma mucho mas simple, pero aun soy nuevo con esto de los punteros y no los comprendo muy bien. Espero que se pueda encontrar el fallo.
Un saludo.
"Escribir un programa con una función que calcule la longitud de una cadena de caracteres. El nombre de la función será LongitudCadena, debe devolver un int, y como parámetro de entrada debe tener un puntero a char.
En esta función no se pueden usar enteros para recorrer el array, usar sólo punteros y aplicar aritmética de punteros.
En main probar con distintos tipos de cadenas: arrays y punteros."
Supongo que no vale esto de recorrer el array con un entero y luego devolver dicho entero, por tanto he probado con esto:
Código (cpp) [Seleccionar]
#include <iostream>
using namespace std;
int LongitudCadena(char*);
int main() {
char cadena[10];
char *pCadena = 0;
cout << "Introduce una cadena como array: ";
cin >> cadena;
cout << "Su tamano es: " << LongitudCadena(cadena) << ". " << endl;
cout << "\nIntroduce una cadena como puntero: ";
cin >> *pCadena;
cout << "Su tamano es: " << LongitudCadena(pCadena) << ". " << endl;
cin.sync();
cin.get();
return 0;
}
int LongitudCadena(char *a) {
char *p, *q;
p = a;
q = a;
while (*a) q++;
return q-p;
}
Seguro que hay una forma mucho mas simple, pero aun soy nuevo con esto de los punteros y no los comprendo muy bien. Espero que se pueda encontrar el fallo.
Un saludo.