Te hace falta pulir conocimientos sobre punteros, no es tan dificil, pero se lo que estas pasando, tratar de entender punteros al principio puede ser complicado y fastidioso, pero cuando lo entiendas verás la potencia y facilidad que tienen.
Para entender tales conceptos te dejo los siguientes enlaces, te recomiendo que los leas y trates de entenderlos con la mejor disposición, pues sino entiendes conceptos tan básicos te garantizo que en el futuro te ira mucho peor y serás un programador de cuarta, puede que tengas trabajo, pero como profesional serás mediocre.
Aritmetica de punteros (http://www.zator.com/Cpp/E4_2_2.htm)
Punteros de Caracteres y Cadenas (http://maxus.fis.usal.es/FICHAS_C.WEB/07xx_PAGS/0702.html)
Objetos Dinamicos (http://c.conclase.net/curso/?cap=012d)
Ahora el primer ejercicio:
Citar
-Ejercicio 1:
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.
#include <iostream>
using namespace std;
int LongitudCadena(char*);
int main()
{
char *punteroCadena;
char Cadena[30];
cout << "Digite la cadena: "; cin >> Cadena;
punteroCadena = Cadena;
cout << "direccion punteroCadena: " << punteroCadena << endl;
cout << "caracteres punteroCadena " << &punteroCadena << endl;
cout << "La cadena " << Cadena << " tiene "
<< LongitudCadena(punteroCadena) << " caracteres." << endl;
return 0;
}
int LongitudCadena(char* puntero)
{
char* copia = puntero;
while(*puntero) puntero++;
return(puntero-copia);
}
Hay que tener que funciona con una palabra, no tiene en cuenta espacios, para eso se complica el asunto, y lo importante es entender el manejo de suma de punteros y paso por referencia, además, ya teniendo la libreria
string.h ya hay funciones que trabajan todo eso de una manera más limpia.