Witam, napisalem funkcje ktora ma liczyc znaki w lancuchu a konkretnie cyfry,litery,spacje oraz dlugosc calego lancucha. Z grubsza wydaje sie wszystko ok lecz niestety wyniki wychodza dalekie od prawdy, prosilbym o pomoc:)
Dodatkowo dodam ze nie moge uzywac funkcji typu isspace,issdigit,issalpha itp, musze to zrobic bez ich uzycia.
#include <stdio.h>
#include <stdlib.h>
#define MAX 100
void licz(char *str[MAX],int *dlugosc,int *cyfry,int *litery,int *spacje)
{
*dlugosc=0;
*cyfry=0;
*litery=0;
*spacje=0;
for(int i=0; i<MAX; i++)
{
if(str[i]>=0&&str[i]<=255)
*dlugosc=*dlugosc+1;
if(str[i]>=48&&str[i]<=57)
*cyfry=*cyfry+1;
if(str[i]>=65&&str[i]<=122)
*litery=*litery+1;
if(str[i]==32)
*spacje=*spacje+1;
}
}
int main()
{
int dlugosc=0,cyfry=0,litery=0,spacje=0;
char str[MAX] = "Przykladowy 7test7 do 8liczenia8";
licz(&str[MAX],&dlugosc,&cyfry,&litery,&spacje);
printf("D:%d\n C:%d\n L:%d\n S:%d\n", dlugosc,cyfry,litery,spacje);
return 0;
}