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.
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);Aihe on jo aika vanha, joten et voi enää vastata siihen.