/* copy1.c -- strcpy() demo */#include<stdio.h>#include<string.h>// declares strcpy()#define SIZE 40#define LIM 5char*s_gets(char* st,int n);intmain(void){char qwords[LIM][SIZE];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{strcpy(qwords[i], temp);
i++;}}puts("Here are the words accepted:");for(i =0; i < LIM; i++)puts(qwords[i]);return0;}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;}
/* copy2.c -- strcpy() demo */#include<stdio.h>#include<string.h>// declares strcpy()#define WORDS "beast"#define SIZE 40intmain(void){constchar* orig = WORDS;char copy[SIZE]="Be the best that you can be.";char* ps;puts(orig);puts(copy);
ps =strcpy(copy +7, orig);puts(copy);puts(ps);return0;}
/* copy3.c -- strncpy() demo */#include<stdio.h>#include<string.h>/* declares strncpy() */#define SIZE 40#define TARGSIZE 7#define LIM 5char*s_gets(char* st,int n);intmain(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]);return0;}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;}