質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

Q&A

3回答

1147閲覧

シーザー暗号の課題がわかりません。

koresoredore

総合スコア0

C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

0グッド

0クリップ

投稿2022/11/25 00:34

大学でこのような課題が出ました。が手も足も出ません。
どなたかこのコード教えてほしいです。

シーザー暗号を用いて、入力された文字列を暗号化するプロ
グラムを作成せよ。(シーザー暗号については次項に説明が
ある)尚、入力される文字列の上限は10文字、 ’a’から’z’の
みとする。また、暗号化する入力文字列と暗号に用いる文字
のシフト数はそれぞれscanfで入力して与えるものとし、結果
はresult.txtに出力せよ。

---- 出力結果--ここから---
入力文字列:abcdefghij
文字のシフト数:1
暗号文:bcdefghijk
---- 出力結果--ここから---

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

1T2R3M4

2022/11/25 00:42

https://teratail.com/help/avoid-asking コードをください・デバッグしてください等の丸投げの質問 何かを作りたいのでコードを書いてほしい、学校の課題を解いてほしい等の質問は、具体的にプログラミングで困っている質問ではないと考え、推奨していません。
episteme

2022/11/25 01:26

「暗号化対象の文字列とシフト数を入力し、それらをそのまま出力せよ」ならできますか?
koresoredore

2022/11/25 01:45

いいえ。。。。まったくわからないです。。
BeatStar

2022/11/25 02:11

そこまでわからないなら基礎から始めるか、そもそも諦めた方が早いですよ。 宿題を丸投げするってことは『自分は楽して他人に労力を強要している』のと同じですから、それならいっそやめた方がいいです。
guest

回答3

0

C

1const char Tbl[26][26+1] = 2{ 3 "abcdefghijklmnopqrstuvwxyz", 4 "bcdefghijklmnopqrstuvwxyza", 5 "cdefghijklmnopqrstuvwxyzab", 6 "defghijklmnopqrstuvwxyzabc", 7 "efghijklmnopqrstuvwxyzabcd", 8 "fghijklmnopqrstuvwxyzabcde", 9 "ghijklmnopqrstuvwxyzabcdef", 10 "hijklmnopqrstuvwxyzabcdefg", 11 "ijklmnopqrstuvwxyzabcdefgh", 12 "jklmnopqrstuvwxyzabcdefghi", 13 "klmnopqrstuvwxyzabcdefghij", 14 "lmnopqrstuvwxyzabcdefghijk", 15 "mnopqrstuvwxyzabcdefghijkl", 16 "nopqrstuvwxyzabcdefghijklm", 17 "opqrstuvwxyzabcdefghijklmn", 18 "pqrstuvwxyzabcdefghijklmno", 19 "qrstuvwxyzabcdefghijklmnop", 20 "rstuvwxyzabcdefghijklmnopq", 21 "stuvwxyzabcdefghijklmnopqr", 22 "tuvwxyzabcdefghijklmnopqrs", 23 "uvwxyzabcdefghijklmnopqrst", 24 "vwxyzabcdefghijklmnopqrstu", 25 "wxyzabcdefghijklmnopqrstuv", 26 "xyzabcdefghijklmnopqrstuvw", 27 "yzabcdefghijklmnopqrstuvwx", 28 "zabcdefghijklmnopqrstuvwxy" 29}; 30 31int main() 32{ 33 //※入力処理は本題ではないから省略 34 char Str[] = "abcdefghij"; 35 int Shift = 22; 36 37 //処理 38 Shift %= 26; 39 for( char *p=Str; *p; ++p ){ *p = Tbl[ *p-'a' ][Shift]; } 40 41 //※ファイルへの出力も本題ではないから省略 42 printf( "%s\n", Str ); 43 return 0; 44}

投稿2022/11/25 11:50

fana

総合スコア11632

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

C

1 2#include <stdio.h> 3 4/* chをnだけズラした文字を返す */ 5char Caesar(char ch, int n) { 6 /* ここはアナタが考えて */ 7} 8 9int main(void) { 10 char str[11]; 11 int shift; 12 FILE* fp; 13 scanf("%s", str); 14 scanf("%d", &shift); 15 16 if ( (fp = fopen("result.txt", "w")) != NULL ) { 17 for ( char* p = str; *p; ++p ) { 18 fputc(Caesar(*p, shift), fp); 19 } 20 fclose(fp); 21 } 22 return 0; 23}

投稿2022/11/25 08:15

episteme

総合スコア16614

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

簡単にするなら、文字配列にA~Za~zをいれといて、該当文字のn個先の要素取ってくればよろしい。
さあ、コードを書いてみよう。

投稿2022/11/25 00:40

y_waiwai

総合スコア87719

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

jimbe

2022/11/25 03:37 編集

質問に対する回答としては「説明が不足している」とか「回答になっていない」と思いますが、質問の質からすると修正されなくても良いんじゃないかとも思います。
fana

2022/11/25 04:11

> ’a’から’z’のみ とか言ってるから,A~Z の側は要らないのかも? とりあえず使用する文字種の個数がNだとしたら,入力→出力 の NxN のマトリクスを用意しとけばいいよね.
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問