Skip to content

Instantly share code, notes, and snippets.

@lamegaton
Created September 13, 2018 19:33
Show Gist options
  • Save lamegaton/1c63de4bafc00408a3e8084864ac9dfe to your computer and use it in GitHub Desktop.
Save lamegaton/1c63de4bafc00408a3e8084864ac9dfe to your computer and use it in GitHub Desktop.
Example of Switch
/*Example from book the C programing language
* by Brian W.Kernighan and Dennis M. Ritchie
*/
#include <stdio.h>
int main(){
int c, i, nwhite, nother, ndigit[10];
nwhite = nother = 0;
//reset the array to 0
for (i = 0; i < 10; i++)
ndigit[i] = 0;
while ((c = getchar()) != EOF){
switch(c){
case '0': case '1':case '2': case '3':case '4':
case '5': case '6':case '7': case '8':case '9':
//ndigit[c]++;
//you may ask why don't we use it
//the reason is c store an int code match with char not
//an actual int, in this case '0' is 48, it's out of range of
//our ndigit array
ndigit[c-'0']++;
break;
case ' ':
case '\n':
case '\t':
nwhite++;
break;
default:
nother++;
break;
}
}
printf("digits = ");
for (i = 0; i < 10; i++)
printf(" %d", ndigit[i]);
printf(", white space = %d, other = %d\n",
nwhite, nother);
return 0;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment