この質問では、入力文字列の最初の3文字を最後に移動する関数を作成する必要があります。
関数インターフェイスの定義:
void Shift( char s[] );
それらの中にchar s[]
は、ユーザーによって渡された文字列があり、タイトルの長さは3以上であることが保証されています。関数Shift
は、必要に応じて変換後も文字列に存在する必要がありs[]
ます。
審判員のテスト手順の例:
#include <stdio.h>
#include <string.h>
#define MAXS 10
void Shift( char s[] );
void GetString( char s[] ); /* 实现细节在此不表 */
int main()
{
char s[MAXS];
GetString(s);
Shift(s);
printf("%s\n", s);
return 0;
}
/* 你的代码将被嵌在这里 */
入力サンプル:
abcdef
出力例:
defabc
// 1。質問がある場合は、メッセージを残して指摘してください、ありがとうございます!!!
// 2。より良いアイデアがある場合は、メッセージを残すこともできます。ありがとうございます!!!
void Shift(char s [])
{int i、j、k、n;
n = strlen(s); // strlen()は、終了文字「\ 0」を除いて、指定された文字列sの長さを計算するために使用されます。
for(i = 0; i <3; i ++)//入力文字列の最初の3文字を最後に移動します。つまり、3回ループします
{k = s [0]; //最初の要素を取り出します
for( j = 1; j <n; j ++)// 2番目の値から、前の値を割り当てます
s [j-1] = s [j];
s [n-1] = k; //数が取り出されます最後に移動
}
}