Δημοσιεύτηκε: 26 Αύγ 2011, 15:27
από stamatiou
migf1 έγραψε:#include <stdio.h>
#include <stdlib.h>
#include <string.h>

// ------------------------------------------------------------------------------
int is_vowel( char c )
{
char *s = "aAEeIioOUuYy"; // ορισμός του s με όλα τα φωνήεντα

while ( *s ) // όσο το *s διαφέρει του '\0'
if ( c == *s++ ) // ... αν το c βρεθεί στο s
return 1; // ... ... επέστρεψε TRUE

return 0; // επέστρεψε FALSE

/*** DISABLED
int i;
char s[] = {'a','A','E','e','I','i','o','O','U','u','Y','y','\0'};

for (i=0; i < 12; i++)
if ( c == s[i] )
return 1;

return 0;
***/
}
// ------------------------------------------------------------------------------
int is_consonant( char c )
{
// ορισμός του s με όλα τα σύμφωνα
char *s = "bBcCdDfFgGhHjJkKlLmMnNpPqQrRsStTvVwWxXzZ";

while ( *s ) // όσο το *s διαφέρει του '\0'
if ( c == *s++ ) // ... αν το c βρεθεί στο s
return 1; // ... ... επέστρεψε TRUE

return 0; // επέστρεψε FALSE

/*** DISABLED
int i;
char s[] = {'b','B','c','C','d','D','f','F','g','G','h','H','j','J','k','K','l','L','m','M','n','N','p','P','q','Q','r','R','s','S','t','T','v','V','w','W','x','X','z','Z','\0'};

for (i=0; i < 40; i++)
if ( c == s[i] )
return 1;

return 0;
***/
}
// ------------------------------------------------------------------------------
int main( void )
{
int i, i2=0, i3=0, i4=0, slen;
char s[256] = "";
char vows[255] = "", cons[255] = "", othr[255] = "";

fgets(s, 256, stdin);
slen = strlen( s );
for (i=0; i < slen; i++)
{
if ( is_consonant( s[i] ) ) {
cons[ i2++ ] = s[ i ];
}
else if ( is_vowel( s[i] ) ) {
vows[ i3++ ] = s[ i ];
}
else {
if ( s[i] > 31 && s[i] <= 64 )
othr[ i4++ ] = s[ i ];
}
}

/*** DISABLED for (i=0; i < strlen( s ); i++)
s[i] = 0;
***/
s[0] = '\0'; // σβήσιμο των περιεχομένων του s

strncat(s, 255, vows);
strncat(s, 255, othr);
strncat(s, 255, cons);

/*** DISABLED
for (i=0; i < strlen( s ); i++)
printf("%c", s[i]);
putchar('\n');
***/
puts( s ); // τύπωμα του s στην οθόνη

return 0;
}

Εμένα μου βγάζει segmentation fault και ένα αρκετά warnings :?: