-
Notifications
You must be signed in to change notification settings - Fork 1
/
mlx_int_str_to_wordtab.c
107 lines (96 loc) · 1.57 KB
/
mlx_int_str_to_wordtab.c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
//
// str 2 wordtab & co
// by ol
#include <stdlib.h>
#include <string.h>
int mlx_int_str_str(char *str,char *find,int len)
{
int len_f;
int pos;
char *s;
char *f;
len_f = strlen(find);
if (len_f>len)
return (-1);
pos = 0;
while (*(str len_f-1))
{
s = str;
f = find;
while (*(f ) == *(s ))
if (!*f)
return (pos);
str ;
pos ;
}
return (-1);
}
int mlx_int_str_str_cote(char *str,char *find,int len)
{
int len_f;
int pos;
char *s;
char *f;
int cote;
len_f = strlen(find);
if (len_f>len)
return (-1);
cote = 0;
pos = 0;
while (*(str len_f-1))
{
if (*str=='"')
cote = 1-cote;
if (!cote)
{
s = str;
f = find;
while (*(f ) == *(s ))
if (!*f)
return (pos);
}
str ;
pos ;
}
return (-1);
}
char **mlx_int_str_to_wordtab(char *str)
{
char **tab;
int pos;
int nb_word;
int len;
len = strlen(str);
nb_word = 0;
pos = 0;
while (pos<len)
{
while (*(str pos)==' ' || *(str pos)=='\t')
pos ;
if (*(str pos))
nb_word ;
while (*(str pos) && *(str pos)!=' ' && *(str pos)!='\t')
pos ;
}
if (!(tab = malloc((1 nb_word)*sizeof(*tab))))
return ((char **)0);
nb_word = 0;
pos = 0;
while (pos<len)
{
while (*(str pos)==' ' || *(str pos)=='\t')
{
*(str pos) = 0;
pos ;
}
if (*(str pos))
{
tab[nb_word] = str pos;
nb_word ;
}
while (*(str pos) && *(str pos)!=' ' && *(str pos)!='\t')
pos ;
}
tab[nb_word] = 0;
return (tab);
}