Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: Jay en 20 Octubre 2020, 09:34 am



Título: Duda con arreglo
Publicado por: Jay en 20 Octubre 2020, 09:34 am
Tengo una duda con un arreglo de una subcadena de un alfabeto
Si por ejemplo tengo :
Código
  1. char [i] = “a” ;
  2. int n;
  3.  
Como hago para elevar por ejemplo n potencia es decir que me aparezcan
aaa si n = 3


Título: Re: Duda con arreglo
Publicado por: Danielㅤ en 20 Octubre 2020, 14:23 pm
Hola, tu código es en C o C++?.

No estoy seguro pero podrías probar con:
 
Código:
char[i] = char[i] * n;

Por otro lado ten cuidado con esto:

char [i] = “a” ;

Esas no son comillas dobles normales por lo que tú compilador te puede arrojar error, posiblemente has copiado ese pequeño código de un tutorial en PDF (suelen usar en los ejemplos esas comillas) o tal vez de alguna página web.


Saludos


Título: Re: Duda con arreglo
Publicado por: @XSStringManolo en 20 Octubre 2020, 14:54 pm
con un for?
Código
  1. for(int i = 0; i < n; ++i) {
  2.  char[i] = "a"
  3. }


En c++ puedes usar strings. También puedes usar while en el lugar de for.
Código
  1. int i = 0;
  2. miString = "";
  3. while(i < n) {
  4.  miString += "a";
  5.  ++i;
  6. }


No sé si es esto a lo que te refieres.
En la librería math tienes función para hacer potentias.


Título: Re: Duda con arreglo
Publicado por: K-YreX en 20 Octubre 2020, 17:33 pm
Tengo una duda con un arreglo de una subcadena de un alfabeto
Si por ejemplo tengo :
Código
  1. char [i] = “a” ;
  2. int n;
  3.  
Como hago para elevar por ejemplo n potencia es decir que me aparezcan
aaa si n = 3

Varias cosas:
  • Las comillas dobles se utilizan para strings (cadenas), no para caracteres. Los caracteres se definen entre comillas simples.
  • Y lo que quieres no es utilizar potencias sino "multiplicar" por así decirlo. Es decir lo que en otros lenguajes se puede hacer como:
Código:
 
n = 3
print("a" * n)

Como te ha comentado @XSStringManolo, tienes que usar bucles. Pero tienes que fijarte en dónde lo vas a guardar ya que si tienes un array de char, cada posición solo puede almacenar un caracter.
Código
  1. define N 3
  2. int main(){
  3.  char caracter = 'a';
  4.  char caracteres[N];
  5.  for(int i = 0; i < N; ++i){
  6.    caracteres[i] = caracter;
  7.  }
  8. }

Si quieres variar ese número entonces tendrías que usar arrays con un tamaño fijo superior (y tendrás su correspondiente desaprovechamiento de memoria) que se suele usar cuando se empieza o utilizar memoria dinámica.

También depende si lo que quieres es guardar el contenido o mostrarlo o hacer algo con ello. Según el propósito final es más recomendable diseñarlo de una manera o de otra.


Título: Re: Duda con arreglo
Publicado por: CalgaryCorpus en 23 Octubre 2020, 05:37 am
En C++ el tipo string tiene un constructor que acepta un size_t y un char, y, al crear el string, copia el char tantas veces como diga el size_t