1234567891011121314151617181920212223242526272829303132333435363738394041424344 |
- /* join_chk.c -- joins two strings, check size first */
- #include <stdio.h>
- #include <string.h>
- #define SIZE 30
- #define BUGSIZE 13
- char * s_gets(char * st, int n);
- int main(void)
- {
- char flower[SIZE];
- char addon[] = "s smell like old shoes.";
- char bug[BUGSIZE];
- int available;
-
- puts("What is your favorite flower?");
- s_gets(flower, SIZE);
- if ((strlen(addon) + strlen(flower) + 1) <= SIZE)
- strcat(flower, addon);
- puts(flower);
- puts("What is your favorite bug?");
- s_gets(bug, BUGSIZE);
- available = BUGSIZE - strlen(bug) - 1;
- strncat(bug, addon, available);
- puts(bug);
-
- return 0;
- }
- char * s_gets(char * st, int n)
- {
- char * ret_val;
- int i = 0;
-
- ret_val = fgets(st, n, stdin);
- if (ret_val)
- {
- while (st[i] != '\n' && st[i] != '\0')
- i++;
- if (st[i] == '\n')
- st[i] = '\0';
- else // must have words[i] == '\0'
- while (getchar() != '\n')
- continue;
- }
- return ret_val;
- }
|