diff options
Diffstat (limited to 'ch2/2-02.c')
-rw-r--r-- | ch2/2-02.c | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/ch2/2-02.c b/ch2/2-02.c new file mode 100644 index 0000000..52b0a2e --- /dev/null +++ b/ch2/2-02.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); +} |