Inledande uppgifter i C
3.1.1 Visa en funktion int isprint (int c) som undersöker om ett ASCII-tecken c
(konverterat till int) är ett skrivbart tecken (dvs. i intervallet SPACE..~). I så fall ska värdet 1 returneras, annars ska värdet 0 returneras.
int isprint (int c)
{
if ( c >= 0x20 && c <= 0x7e)
return 1;
return 0;
}
3.1.2 Visa en funktion int iscntrl (int c) som undersöker om ett ASCII-tecken c
(konverterat till int) är ett icke-skrivbart tecken ("kontrolltecken"). I så fall ska värdet 1 returneras, annars ska värdet 0 returneras.
int iscntrl(int c)
{
if ( c <= 0x1F || c == 0x7f)
return 1;
return 0;
}
3.1.3 Visa en funktion int isgraph (int c) som undersöker om ett ASCII-tecken c
(konverterat till int) är ett skrivbart tecken annat än SPACE. I så fall ska värdet 1 returneras, annars ska värdet 0 returneras.
int isgraph(int c)
{
if ( c >= 0x21 && c <= 0x7e )
return 1;
return 0;
}
3.1.4 Visa en funktion int isalpha (int c) som undersöker om ett ASCII-tecken c
(konverterat till int) är ett alfabetiskt tecken (versal eller gemen). I så fall ska värdet 1 returneras, annars ska värdet 0 returneras.
int isalpha (int c)
{
if ( c >= 'A' && c <= 'Z')
return 1;
if ( c >= 'a' && c <= 'z')
return 1;
return 0;
}
3.1.5 Visa en funktion int islower (int c) som undersöker om ett ASCII-tecken c
(konverterat till int) är en alfabetisk gemen. I så fall ska värdet 1 returneras, annars ska värdet 0 returneras.
int islower(int c)
{
if ( c >= 'a' && c <= 'z' )
return 1;
return 0;
}
3.1.6 Visa en funktion int isupper (int c) som undersöker om ett ASCII-tecken c
(konverterat till int) är en alfabetisk versal. I så fall ska värdet 1 returneras, annars ska värdet 0 returneras.
int isupper (int c)
{
if ( c >= 'A' && c <= 'Z')
return 1;
return 0;
}
3.1.7 Visa en funktion int isdigit (int c) som undersöker om ett ASCII-tecken c
(konverterat till int) motsvarar en decimal siffra. I så fall ska värdet 1 returneras, annars ska värdet 0 returneras.
int isdigit( int c)
{
if ( c >= '0' && c <= '9' )
return 1;
return 0;
}
3.1.8 Visa en funktion int isxdigit (int c) som undersöker om ett ASCII-tecken c
(konverterat till int) motsvarar en hexadecimal siffra. I så fall ska värdet 1 returneras, annars ska värdet 0 returneras.
int isxdigit (int c)
{
if( ( c >= '0' && c <= '9') ||
( c >= 'a' && c <= 'f') ||
( c >= 'A' && c <= 'F'))
return 1;
return 0;
}
3.1.9 Visa en funktion int isspace (int c) som undersöker om ett ASCII-tecken c
(konverterat till int) motsvarar något kontrolltecken som introducerar ett eller flera
blanka tecken ( SPACE, FORM FEED, NEW LINE, CARRIAGE RETURN, HORIZONTAL TAB, VERTICAL TAB)
i en sekvens med ASCII-tecken. I så fall ska värdet 1 returneras, annars ska värdet 0 returneras.
int isspace (int c)
{
if(c == ' ' ||
c == '\f' ||
c == '\n' ||
c == '\r' ||
c == '\t' ||
c == '\v' )
return 1;
return 0;
}
3.1.10 Visa en funktion int tolower (int c) som undersöker om ett ASCII-tecken c
(konverterat till int) är en alfabetisk versal. I så fall ska dess gemena motsvarighet returneras,
annars returneras ASCII-tecknet som det är.
int tolower (int c)
{
if ( isupper(c))
return c+0x20;
return c;
}
3.1.11 Visa en funktion int toupper (int c) som undersöker om ett ASCII-tecken c
(konverterat till int) är en alfabetisk gemen. I så fall ska dess versala motsvarighet returneras,
annars returneras ASCII-tecknet som det är.
int toupper (int c)
{
if ( islower(c))
return c-0x20;
return c;
}