123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 |
- /* copy3.c -- strncpy() demo */
- #include <stdio.h>
- #include <string.h> /* declares strncpy() */
- #define SIZE 40
- #define TARGSIZE 7
- #define LIM 5
- char * s_gets(char * st, int n);
- int main(void)
- {
- char qwords[LIM][TARGSIZE];
- char temp[SIZE];
- int i = 0;
-
- printf("Enter %d words beginning with q:\n", LIM);
- while (i < LIM && s_gets(temp, SIZE))
- {
- if (temp[0] != 'q')
- printf("%s doesn't begin with q!\n", temp);
- else
- {
- strncpy(qwords[i], temp, TARGSIZE - 1);
- qwords[i][TARGSIZE - 1] = '\0';
- i++;
- }
- }
- puts("Here are the words accepted:");
- for (i = 0; i < LIM; i++)
- puts(qwords[i]);
-
- 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;
- }
|