Alokacja pamięci na podaną ilość znaków.

0
//Program który wczytuje dowolny ciąg znaków, znajduje ilość występowania liter, wypisuje wczytany łańcuch oraz obliczoną ilość liter.


#include <stdio.h>
#include <stdlib.h>

int znajdz (char text[20]);

main()
{
	char tekst[20];
	
	printf("Podaj tekst\n");
	fflush(stdin);
	gets(tekst);

	printf("W podanym przez ciebie tekscie %s wystapilo %d liter\n", tekst, znajdz(tekst));
	
	system("pause");

}

int znajdz (char text[20])
{
	int i;
	int ilosc=0;

	for(i=0; i<20; i++)
	{
		if ((text[i] >='A' && text[i]<='Z') || (text[i]>='a' && text[i]<='z'))
		{
			ilosc++;
		}
	}
	return ilosc;
}

	

Czy istnieje możliwość aby zrobić coś takiego że tablica znaków zrobi się tak duża w zależności od rozmiaru tekstu który podam?
Przykładowo podaje tekst: komputer, a tablica zrobi się na 8 znaków, podaje tekst 765rec a tablica zrobi się na 6 znaków.

0
        char tekst[128];
        printf("Podaj tekst: ");
        fgets(tekst,128,stdin);

Pamiętaj tylko że fgets wczyta również '\n' pozbyć się którego można tak:

if(text[i=strlen(text)-1]=='\n') text[i]=0;
int znajdz (char text[])
  {
   int i,ilosc=0;
   for(i=0;text[i];++i) if(isalpha(text[i])) ++ilosc;
   return ilosc;
  }

1 użytkowników online, w tym zalogowanych: 0, gości: 1