6-17関数による文字列部分コピー(20点)
802 ワード
6-17関数を用いて文字列部分複製(ポインタ書き方)を実現する本題では、関数の記述を要求し、入力文字列tのm番目の文字から始まるすべての文字を文字列sに複製する.
関数インタフェース定義:void strmcpy(char*t,int m,char*s);審判試験プログラムのサンプル:
サンプルを入力:
7 happy new year出力サンプル:*
new year
分かち合いの技があれば、光栄に存じます.
関数インタフェース定義:void strmcpy(char*t,int m,char*s);審判試験プログラムのサンプル:
#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 ){
if(t+m-1 == NULL)
s = NULL;
else{
for(t = t+m-1;*t != '\0';t++,s++){
*s = *t;
}
}
}
分かち合いの技があれば、光栄に存じます.