ayudita c++

bLaCkH0Le

Haber si me se explicar:

yo tengo esto inicialmente:
char* contenido =strdup("001001001");

quiero copiar contenido a otra variable tipo char y hago esto:
c=strdup(contenido);

y lo que quiero es obtener 1 a 1 los caracteres 001001001. No se como ir sacando de uno en uno de c cada uno de estos caracteres o enteros.
Esa es mi duda. Haber si me podeis ayudar. Gracias,

gF

c es un puntero a char no? (char *)

si es asi, haciendo c++ pasas al siguiente caracter, eso sí, al final el puntero c ya no apuntará al inicio de la cadena.

maRc

Con c[0] accedes al primero, con c[1] accedes al segundo y así hasta c[n-2] que accedes al último (c[n-1] debe de ser '\0').

Una cadena en C es un vector de carácteres, puedes acceder como a un vector de enteros, floats o lo que sea.

SeiYa

Hace mucho que no toco C++ pero creo que es:

for(int i=0; c!='\0'; i++)
{
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cout << "Carácter número " << i+1 << ": " << c << endl;
}

Esto te sacará:

Carácter número 1: 0
Carácter número 2: 0
Carácter número 3: 1
Carácter número 4: 0
Carácter número 5: 0
Carácter número 6: 1
Carácter número 7: 0
Carácter número 8: 0
Carácter número 9: 1

Ojo que hace mucho que no toco C++ XD

X

Si estas usando C++, yo usaria el tipo "string".

#include < iostream > //lireria de entradas y salidas (cout, cin, ...)
#include <string> //libreria para cadenas de caracteres

using namespace std; //para no tener q ir poniendo std:: delante de string ni cout (en este caso)

int main(int argc, char *argv[])
{
  //crea y asigna el texto a "contenido"
  string contenido = "001001001";
  //muestra los caracteres uno a uno
  for (int n = 0; n < contenido.size(); n++)
    cout << "Caracter numero " << n + 1 << ": " << contenido[n] << endl;
}

P.D.: He encontrado un bug en los menjsaes, no se si es conocido o no, yo almenos no lo sabia, y es q por ejemplo he puesto < iostream > ( sin espacios entre <..> ) y me lo detecta como si fuera un < i > (cursiva en html)... xD

Poisonous

A una variable de tipo char o a un char*?

De todos modos para acceder a los char que conforman el char* :

for (int i = 0; i < strlen (contenido); i++)
cout << contenido;

OhmaK

Para que hacer un puntero a char en c++ teniendo la clase string que es una implementacion de char * ?

Usa strings

Y si te apetec utilizar chars, haz un bonito for como decian por ahi arriba o usa stcpy

Usuarios habituales