diff options
author | Adam Carpenter <gitlab@53hor.net> | 2019-07-11 13:34:32 -0400 |
---|---|---|
committer | Adam Carpenter <gitlab@53hor.net> | 2019-07-11 13:34:32 -0400 |
commit | 25417eccea8509f54a693cbf54bbc05d43a474c1 (patch) | |
tree | 7eadff432dc468928ba3dd4ac7a5e5c1c77805f9 /ch2/2-2.c | |
parent | 39c0cbcc70aff47e17107826aa76cb525c83b122 (diff) | |
download | learning-c-25417eccea8509f54a693cbf54bbc05d43a474c1.tar.xz learning-c-25417eccea8509f54a693cbf54bbc05d43a474c1.zip |
Updated ch2.
Diffstat (limited to 'ch2/2-2.c')
-rw-r--r-- | ch2/2-2.c | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/ch2/2-2.c b/ch2/2-2.c new file mode 100644 index 0000000..52b0a2e --- /dev/null +++ b/ch2/2-2.c @@ -0,0 +1,46 @@ +#include<stdio.h> + + +#define MAX_LEN 10 + + +/* + * Reads STDIN into string s. Is allowed to use && and ||. + */ +void getline_with_ops(char s[]) { + char c; + int i; + int lim = MAX_LEN; + + for (i = 0; i < lim - 1 && (c = getchar()) != '\n' && c != EOF; ++i) + s[i] = c; + + s[i] = '\0'; +} + + +/* + * Reads STDIN into string s. Is not allowed to use && or ||. + */ +void getline_without_ops(char s[]) { + char c; + int i; + int lim = MAX_LEN; + + for (i = 0; i < lim - 1; ++i) + if ((c = getchar()) != '\n') + if (c != EOF) + s[i] = c; + + s[i] = '\0'; +} + + +int main() { + char s[MAX_LEN]; + + //getline_with_ops(s); + getline_without_ops(s); + + printf("%s\n", s); +} |