#include <unistd.h>
#include <stdlib.h>
void my_putchar( char c)
{
write( 1 , & c, 1 ) ;
}
int my_putstr( char const * str)
{
int c = 0 ;
while ( str[ c] != '\0 ' ) {
my_putchar( str[ c] ) ;
c++;
}
return ( c) ;
}
int is_char( char c)
{
if ( ( c >= '0' && c <= '9' ) || ( c >= 'A' && c <= 'Z' ) || ( c >= 'a' && c <= 'z' ) ) {
return ( 1 ) ;
} else {
return ( 2 ) ;
}
}
int my_wordlen( char const * str)
{
int c = 0 ;
while ( is_char( str[ c] ) == 1 ) {
c++;
}
int count_word( char const * str)
{
int a = 0 ;
int b = 0 ;
while ( str[ a] != '\0 ' ) {
if ( is_char( str[ a] ) == 1 ) {
a++;
} else {
a++;
b++;
}
}
return ( b) ;
}
char * my_strdupword( char const * src)
{
char * dest;
int i;
dest
= malloc ( sizeof ( char ) * ( my_wordlen
( src
) + 1 ) ) ; for ( i = 0 ; is_char( src[ i] ) == 1 ; i++ ) {
dest[ i] = src[ i] ;
}
dest[ i] = '\n ' ;
return ( dest) ;
}
char ** my_str_to_word_array( char const * str)
{
int j = 0 ;
int l = 0 ;
int k = 0 ;
int nb_word;
char ** tab;
char * case_tab;
nb_word = count_word( str) ;
tab
= malloc ( sizeof ( char * ) * ( nb_word
+ 1 ) ) ; while ( str[ l] != '\0 ' ) {
while ( j < nb_word) {
k++;
l++;
if ( is_char( str[ k] ) == 1 ) {
my_strdupword( str) ;
l++;
k++;
case_tab = my_strdupword( str) ;
} else if ( is_char( str[ l] ) == 2 ) {
my_putchar( '\n ' ) ;
l++;
}
l++;
j++;
}
* tab = case_tab;
}
return ( tab) ;
}
int main( )
{
char * str_to_array = "bonjour, jespere,que ca va" ;
my_str_to_word_array( str_to_array) ;
return 0 ;
}
I2luY2x1ZGUgPHVuaXN0ZC5oPgojaW5jbHVkZSA8c3RkbGliLmg+Cgp2b2lkIG15X3B1dGNoYXIoY2hhciBjKQp7CiAgICB3cml0ZSgxLCAmYywgMSk7Cn0KCmludCBteV9wdXRzdHIoY2hhciBjb25zdCAqc3RyKQp7CiAgICBpbnQgYyA9IDA7CgogICAgd2hpbGUgKHN0cltjXSAhPSAnXDAnKSB7CiAgICAgICAgbXlfcHV0Y2hhcihzdHJbY10pOwogICAgICAgIGMrKzsKICAgIH0KICAgIHJldHVybiAoYyk7Cn0KCmludCBpc19jaGFyKGNoYXIgYykKewogICAgaWYgKChjID49ICcwJyAmJiBjIDw9ICc5Jyl8fChjID49ICdBJyAmJiBjIDw9ICdaJyl8fChjID49ICdhJyAmJiBjIDw9ICd6JykpIHsKICAgICAgICByZXR1cm4gKDEpOwogICAgfSBlbHNlIHsKICAgICAgICByZXR1cm4gKDIpOwogICAgfQp9CgppbnQgbXlfd29yZGxlbihjaGFyIGNvbnN0ICpzdHIpCnsKICAgIGludCBjID0gMDsKCiAgICB3aGlsZSAoaXNfY2hhcihzdHJbY10pID09IDEpIHsKCWMrKzsKICAgIH0KCmludCBjb3VudF93b3JkKGNoYXIgY29uc3QgKnN0cikKewogICAgaW50IGEgPSAwOwogICAgaW50IGIgPSAwOwoKICAgIHdoaWxlIChzdHJbYV0gIT0gJ1wwJykgewogICAgICAgIGlmIChpc19jaGFyKHN0clthXSkgPT0gMSkgewogICAgICAgICAgICBhKys7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgYSsrOwogICAgICAgICAgICBiKys7CiAgICAgICAgfQogICAgfQogICAgcmV0dXJuIChiKTsKfQoKY2hhciAqbXlfc3RyZHVwd29yZChjaGFyIGNvbnN0ICpzcmMpCnsKICAgIGNoYXIgKmRlc3Q7CiAgICBpbnQgaTsKCiAgICBkZXN0ID0gbWFsbG9jKHNpemVvZihjaGFyKSAqIChteV93b3JkbGVuKHNyYykgKyAxKSk7CiAgICBmb3IgKGkgPSAwOyBpc19jaGFyKHNyY1tpXSkgPT0gMTsgaSsrKSB7CiAgICAgICAgZGVzdFtpXSA9IHNyY1tpXTsKICAgIH0KICAgIGRlc3RbaV0gPSAnXG4nOwogICAgcmV0dXJuIChkZXN0KTsKfQoKY2hhciAqKm15X3N0cl90b193b3JkX2FycmF5KGNoYXIgY29uc3QgKnN0cikKewogICAgaW50IGogPSAwOwogICAgaW50IGwgPSAwOwogICAgaW50IGsgPSAwOwogICAgaW50IG5iX3dvcmQ7CiAgICBjaGFyICoqdGFiOwogICAgY2hhciAqY2FzZV90YWI7CgogICAgbmJfd29yZCA9IGNvdW50X3dvcmQoc3RyKTsKICAgIHRhYiA9IG1hbGxvYyhzaXplb2YoY2hhciopICogKG5iX3dvcmQgKyAxKSk7CiAgICB3aGlsZSAoc3RyW2xdICE9ICdcMCcpIHsKICAgICAgICB3aGlsZSAoaiA8IG5iX3dvcmQpIHsKICAgICAgICAgICAgaysrOwogICAgICAgICAgICBsKys7CiAgICAgICAgICAgIGlmIChpc19jaGFyKHN0cltrXSkgPT0gMSkgewoJCW15X3N0cmR1cHdvcmQoc3RyKTsKICAgICAgICAgICAgICAgIGwrKzsKICAgICAgICAgICAgICAgIGsrKzsKICAgICAgICAgICAgICAgIGNhc2VfdGFiID0gbXlfc3RyZHVwd29yZChzdHIpOwogICAgICAgICAgICB9IGVsc2UgaWYgKGlzX2NoYXIoc3RyW2xdKSA9PSAyKSB7CiAgICAgICAgICAgICAgICBteV9wdXRjaGFyKCdcbicpOwogICAgICAgICAgICAgICAgbCsrOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGwrKzsKICAgICAgICAgICAgaisrOwogICAgICAgIH0KICAgICAgICAqdGFiID0gY2FzZV90YWI7CiAgICB9CiAgICByZXR1cm4gKHRhYik7Cn0KCmludCBtYWluKCkKewogICAgY2hhciAqc3RyX3RvX2FycmF5ID0gImJvbmpvdXIsIGplc3BlcmUscXVlIGNhIHZhIjsKICAgIG15X3N0cl90b193b3JkX2FycmF5KHN0cl90b19hcnJheSk7CiAgICBmcmVlKHN0cl90b19hcnJheSk7CiAgICByZXR1cm4gMDsKfQoKCg==
compilation info
prog.c: In function ‘my_wordlen’:
prog.c:98:5: warning: ‘main’ is normally a non-static function [-Wmain]
int main()
^~~~
prog.c:104:1: error: expected declaration or statement at end of input
}
^
prog.c: In function ‘my_putchar’:
prog.c:6:5: warning: ignoring return value of ‘write’, declared with attribute warn_unused_result [-Wunused-result]
write(1, &c, 1);
^~~~~~~~~~~~~~~
prog.c: In function ‘my_wordlen’:
prog.c:104:1: warning: control reaches end of non-void function [-Wreturn-type]
}
^
At top level:
prog.c:98:5: warning: ‘main’ defined but not used [-Wunused-function]
int main()
^~~~
stdout