Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: C++: Yksinkertainen(?) ongelma

J.J. [10.06.2005 15:26:31]

#

Miten tehdä c-kielen funktio, joka palauttaa välilyönneistä koostuvan merkkijonon, esim. muodossa

char* Space(int maara)

Eli samanlainen funktio, kuin basicissa SPACE$().

Kuulostaa helpolta, mahdollisesti onkin, mutta en ole itse saanut onnistumaan yksinkertaisilla ratkaisuilla.

Metabolix [10.06.2005 19:59:48]

#

Muistia voi varata malloc-funktiolla ja sen voi asettaa sisältämään tiettyä tavua memset-funktiolla.

#include <stdlib.h>
#include <string.h>

char *Space(int maara)
{
  /* Varataan maara tavua */
  char *Muuttuja = malloc(maara);

  /* Asetetaan sisältämään spaceja */
  memset(Muuttuja, ' ', maara);

  /* Palautetaan */
  return Muuttuja;
}

Muistutan vielä, että C:ssä kaikki tällä tavalla varattu muisti pitää myös vapauttaa. Tämä tapahtuu free-funktiolla.

/* Luodaan */
char *Merkkijono = Space(30);

/* Printataan "***[30 väliä]***" */
printf("Näin monta spacea:\n***%s***\n", Merkkijono);

/* Vapautetaan varattu muisti */
free(Merkkijono);

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta