C - Wskaźnik na tekst - Proszę o pomoc

C - Wskaźnik na tekst - Proszę o pomoc
QE
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 31
0
Kopiuj
#include <stdio.h>
#include <stdlib.h>

main()
{
	char *tekst;
	int n;
	
	printf("Podaj dlugosc tekstu jaki chcesz wprowadzic"); 
	scanf("%d", &n);
	
	tekst = (int*) mallock (n*sizeof(int));

}

Kompilator już w tym momencie wywala błąd. Chce zrobić dynamiczny wskaźnik na tekst aby poźniej z danego tekstu powybierać tylko litery, cyfry i inne znaki. To postaram się sam zrobić. Proszę tylko o radę dlaczego kod u góry nie działa.

_13th_Dragon
  • Rejestracja: dni
  • Ostatnio: dni
0

tekst = (char*)malloc(nsizeof(char));
A właściwie to powinno być:
tekst = (char
)malloc((n+1)*sizeof(char)); // +1 na znak końca.
Poza tym, czemu nie zrobić tak:

Kopiuj
        char tekst[1024+1];
        printf("Podaj tekst: "); 
        scanf("%1024s",tekst);
        printf("Podano tekst '%s'\n",tekst);
Endrju
  • Rejestracja: dni
  • Ostatnio: dni
0

Nie mallock tylko malloc. Skoro alokujesz tablicę char to dlaczego w alokacji wszędzie masz int? Poza tym main powinien zwracać int, nie masz też return.

QE
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 31
0

Ok poprawiłem ale mam problem z wprowadzeniem tekstu. Próbuje funkcją gets, niestety nie działa.

Kopiuj
#include <stdio.h>
#include <stdlib.h>
 
main()
{
        char *tekst;
        int n,i;
 
        printf("Podaj dlugosc tekstu jaki chcesz wprowadzic"); 
        scanf("%d", &n);
 
        tekst = (char*) malloc(n*sizeof(char));
		
		printf("Podaj tekst");
		gets(tekst);

		puts(tekst);



 
}

Ma ktoś jakiś pomysł?

_13th_Dragon
  • Rejestracja: dni
  • Ostatnio: dni
0
qetix napisał(a):

Próbuje funkcją gets, niestety nie działa.
Zgaduje że funkcja gets() siada ci na klawiaturę i krzyczy: - "Nie będę działać!".

QE
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 31
0

Jest możliwe żebym podał jakiś tekst a tablica zrobiła się dokładnie na taką wielkość ile wynosi liczba znaków w tekście?

_13th_Dragon
  • Rejestracja: dni
  • Ostatnio: dni
0

Tak, możliwe ale to spory kawał kodu wyjdzie.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.