練習問題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;
}
/*あなたのコードはここに埋め込まれます*/入力サンプル: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’; } }
関数インタフェース定義: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’; } }