※ ChatGPTを利用し、要約された質問です(原文:暗号化文・・・何故出力文が1文字欠けるのでしょうか?)
暗号化プログラムで1文字欠落する理由は?
このQ&Aのポイント
暗号化プログラムで文字が1文字欠落してしまう理由を教えてください。
現在、暗号化(原文字から3文字ずらす)するプログラムを作成中ですが、なぜか1文字が欠落してしまいます。どうしてでしょうか?
プログラムを作成している際に、暗号化した結果の出力文において1文字が欠けてしまう現象が発生しています。この理由を教えてください。
暗号化文・・・何故出力文が1文字欠けるのでしょうか?
忙しい中失礼します。
現在暗号化(原文字から3文字ずらす)するためのプログラムを作成しているのですが、どういうわけか文字が1文字欠落してしまいます??
これはどうしてでしょうか?
例:THE FOX と入力→ KH IRA と出力される。TがWに変換されないまま消去される。この1文字が欲しいのです。
宜しければどこが悪いのか教えて下さい。お願いします。私の頭では悪すぎて考えが浮かばないのです・・・。
使用環境:Windows XP、Borland C?
下記が私のプログラムです。
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
void mystery(char);
char sen;
printf("Enter your sentence: ");
scanf("%c", &sen);
mystery(sen);
system("pause");
return 0;
}
void mystery(char sen)
{
char *upper = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
int c, i;
while((c = getchar()) != '\n')
{
for(i = 0; upper[i]; i++)
{
if(c == upper[i])
{
c = upper[(i + 3) % 26];
break;
}
}
putchar(c);
}
}
お礼
! scanf("%c", &sen);→不要でした。 mystery(sen);→で、期待した答えを得ることが出来ました。 keikyu2101さん、回答ありがとうございました。