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.