Tady je kod:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int strChrPos(const char *cil, int c)
{
char *p;
p=strchr(cil,(char)c);
if (p) return p-cil;
else return -1;
}
int csvParse(const char str[], char delimiter, char vals[250][250])
{
size_t pozice;
int pocet;
int i=0;
char cil[250];
//zkopiruje øetìzec aby s ním mohl pracovat
strcpy(cil,str);
//celkový poèet delimiterù
int delka = strlen(cil);
printf("Delka: %d",delka);
puts("");
//kolik delimiteru
while (i<=delka)
{
i++;
if (cil[i]==delimiter) pocet++;
}
printf("Celkem del: %d",pocet);
puts("");
char znak=';';
//pozice prvního delimiteru
pozice=strChrPos(cil,znak);
printf("Prvni vyskyt znaku '%c' v retezci \"%s\" je na pozici %d\n\n",znak,cil,pozice);
//val[0][0]
strcpy(vals,cil);
char p;
for (int i=0;i<delka;i++)
{
for(int j=0;j<delka;j++)
{
p=vals[i][j];
//vkladej znaky do vals
vals[i][j]=p;
printf("%c",vals);
//kdyz bude p=delimiter, odskoc na dalsi radek
if(cil[i]==delimiter) {printf("\n");}
}
}
return 0;
}
int main()
{ int i=250; int j=250;
char values [250][250];
int count = csvParse("10;ab;30",';',values);
for (int i=0; i<count; i++)
{
printf("%s\n",values[i]);
}
return 0;
}