練習問題8-5関数を用いて文字列部分のコピーを実現する(20点)

788 ワード

練習問題8-5関数を用いて文字列部分コピー(20点)を実現する本題では、入力文字列tのm番目の文字から始まるすべての文字を文字列sにコピーする関数を記述する必要がある.
関数インタフェース定義:void strmcpy(char*t,int m,char*s);関数strmcpyは、入力文字列char*tのm番目の文字から始まるすべての文字を文字列char*sにコピーします.mが入力文字列の長さを超える場合、結果文字列は空白列であるべきである.
審判試験プログラムサンプル:#include#define MAXN 20
void strmcpy( char *t, int m, char s ); void ReadString( char s[] );/審判によって実現され、省略して表に出さない*/
int main() { char t[MAXN], s[MAXN]; int m;
scanf("%d
", &m); ReadString(t); strmcpy( t, m, s ); printf("%s
", s); return 0;

}
/*あなたのコードはここに埋め込まれます*/入力サンプル:7 happy new year出力サンプル:new year
コードは次のとおりです.
void strmcpy( char *t, int m, char *s ) { int n,i; n=strlen(t); if(m>n) *s=NULL; else{ for(i=m-1;i { s[i-(m-1)]=t[i]; } s[i-(m-1)]=’\0’; } }