Finished 2.6. Start 2.7 Type Conversions
This commit is contained in:
@@ -0,0 +1,68 @@
|
|||||||
|
/*
|
||||||
|
*
|
||||||
|
*
|
||||||
|
* for (i=0; i < lim-1 && (c=getchar()) != '\n' && c ~= EOF; ++i)
|
||||||
|
* s[i] = c;
|
||||||
|
*
|
||||||
|
* Exercise 2-1. Write a loop equivalent to the for loop above without using && or ||
|
||||||
|
*
|
||||||
|
* Author: Kun Deng
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <stdio.h>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
const int LIM = 10;
|
||||||
|
|
||||||
|
int is_i_less_than_lim(int i)
|
||||||
|
{
|
||||||
|
// Results in 1 if true and 0 if not
|
||||||
|
int result = i < LIM -1;
|
||||||
|
|
||||||
|
// printf("is_i_less_than_lim(%d, %d) function result is %d\n", i, LIM, result);
|
||||||
|
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
int is_c_not_new_line(char *c)
|
||||||
|
{
|
||||||
|
*c = getchar();
|
||||||
|
// Results in 1 if true and 0 if not
|
||||||
|
int result = (*c != '\n');
|
||||||
|
|
||||||
|
// printf("is_c_not_new_line(%c) function result is %d\n", *c, result);
|
||||||
|
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
int is_c_end_of_file(char c)
|
||||||
|
{
|
||||||
|
// Results in 1 if true and 0 if not
|
||||||
|
int result = c != EOF;
|
||||||
|
|
||||||
|
// printf("is_c_end_of_file(%c) function result is %d\n", c, result);
|
||||||
|
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
char c;
|
||||||
|
char s[LIM];
|
||||||
|
int i;
|
||||||
|
|
||||||
|
printf("Enter characters\n\n");
|
||||||
|
|
||||||
|
// The result of the functions are compared to each other. If any are not true then the loop will
|
||||||
|
// be terminated
|
||||||
|
for (i = 0; is_i_less_than_lim(i) == is_c_not_new_line(&c) == is_c_end_of_file(c); ++i)
|
||||||
|
s[i] = c;
|
||||||
|
|
||||||
|
s[i] = '\0';
|
||||||
|
|
||||||
|
printf("s is %s\n", s);
|
||||||
|
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user