大文字を小文字に変換し、小文字を大文字に変換できるプログラムを書いています。下記は用例です。このCコードをどのようにしてシェルスクリプトに変換できますか?
ABCDE - > ABCDE
ABCDE - > ABCDE
ABCDE - > ABCDE
私は、スクリプトをシェルCでそれを行うことなくする方法を知っています。ここにはCコードがあります。
1 #include <stdio.h>
2 #include <ctype.h>
3 #include <stdlib.h>
4 #include <string.h>
5
6 int main(int args, char* argv[])
7 {
8
9 if(args != 2)
10 exit(1);
11 char buf[100];
12 for(int i = 0; i < strlen(argv[1]); i++)
13 {
14 if(i%2 == 0)
15 buf[i] = tolower(argv[1][i]);
16 else
17 buf[i] = toupper(argv[1][i]);
18 }
19 printf("%s\n", buf);
20 }
あなたは私にシェルスクリプトの書き方を教えてもらえますか? ありがとうございます。
あなたは 'BUF [I] =「\ 0」の文字列を終了しなかったときには、Cのコードが動作することを奇跡です。 'ループの後に。しかし、私はスコープと人生から外れてしまったので、それはうまくいきませんでした。 –
シェルスクリプトでこのようにしたいと思う理由はありますか?(NULL終端文字と潜在的なバッファオーバーフローの問題を除いて)わかりやすいCコードがうまく動作するときは?私は、シェルスクリプトはこれのためのひどいツールになるという意見です。 'awk'を試してみてください。これは多くのシステムで動作し、Cのような構文をしています。 –
私は@ChronoKitsuneと一緒にいる:これは、主に実際に実際に行う必要がある運動であるため、シェルスクリプトでは簡単ではありません。 Cの代わりにPerlプログラムを実行すると、 'シェルスクリプトで'カウントされますか?シェルスクリプトではどのようなコマンドを使用できますか?どちらのシェルを使用する予定ですか?たぶん大文字小文字変換機能(または 'tr'コマンド)を使用して、引数を小文字と大文字の両方に大文字と小文字(大文字と小文字の両方)に大文字と小文字に変換した後、大文字と小文字の変数。 –