プログラムを使用して、指定された文字列の偶数および奇数の位置に文字を印刷しようとしています。私のプログラムは、文字列が1つだけであればうまくいきますが、複数の文字列を含む文章では機能しません。次のコードは入力された2番目の文字列を出力しますが、非常に最初の文字列です。私は「団結」として最初の文字列を入力したときに、実行時に複数の文字列の偶数および奇数位置に文字を印刷する
int main()
{
char string[10], even[10], odd[10], i, j, k,count;
i = j = k = count = 0;
do
{
printf("Enter your input string:");
fgets(string, 10, stdin);
string[strlen(string) - 1] = '\0';
/* printing the input string */
printf("Given Input string:%s\n", string);
while (string[i] != '\0')
{
if (i % 2 == 0) {
odd[j++] = string[i];
}
else {
even[k++] = string[i];
}
i++;
}
/* terminating even and odd string with NULL */
odd[j] = even[k] = '\0';
/* print the characters at odd position and even positions */
printf(" %s %s", odd,even);
odd[0]=even[0]='\0';
count++;
}while(count<2);
return 0;
}
は、それが奇数位置と偶数位置のための「NTD」のための「UIE」をプリントアウト。それから私は "状態"として入力した2番目の文字列を入力するよう求められますが、入力された文字列を除いては何も出力されず、プログラムは終了します。最初の文字列と同じように出力されませんでした。 私の間違いを指摘してください。私のコードは最初の文字列だけでなく、ユーザーが入力したすべての文字列の偶数と奇数の位置に文字を出力する必要があります。
ローカル変数をリセットするのを忘れました。 –
「i」、「j」、および「k」は0にリセットされていません。 – Riley
はい、私は今間違いを認識しました。私は修正し、現在は動作しています。どうもありがとうございました! – Angela