This is definitely my most favorite C book and probably one of the best programming books ever written. If you want to dive into C, this is the perfect book. However, I won’t recommend it if you don’t know the basics.
In this series I will post my solutions for some more interesting exercises.
Exercise 1-9. Write a program to copy its input to its output, replacing each string of one or more blanks by a single blank.
#include
int main()
{
char c;
while((c = getchar()) != EOF)
{
if (c == ' ')
{
putchar(c);
while((c = getchar()) == ' ')
{
;
}
}
putchar(c);
}
return 0;
}
Exercise 1-19. Write a function reverse(s) that reverses the character string s.
#include
int length(char s[])
{
int i;
for(i = 0; s[i] != ' '; i++)
;
return i;
}
void switchchar(char s[], int i, int j)
{
char tmp;
tmp = s[i];
s[i] = s[j];
s[j] = tmp;
}
void reverse(char s[])
{
int i, len;
len = length(s) - 1;
for(i = 0; i < (len / 2); i++) { switchchar(s, i, (len - i)); } } int main() { char s[] = "abcdefghi"; reverse(s); return 0; }