文字列を大文字にする


18

文字列を指定して、大文字にします。総額で私は意味conTeNT-lENgthの変更をContent-Length。例で-は、単語境界として2つの単語を含む文字列を示しました。ただし、単一の文字で区切られた任意の数の単語を境界として含む文字列のコードを記述することを期待しています。この境界は、文字列全体で変化する場合があります。

条件

  1. 使用regular expressions許可されていません
  2. 文(文字列)には任意の数の単語を含めることができます。
  3. 各単語は、あらゆるケースのEnglish文字[a-zA-Z]で構成されます。
  4. 文中の異なる単語は単一の文字で区切られます。この文字はしますのみのいずれであっても-.<space-character>/&#。文には、言及された文字以外の文字が含まれないと想定しても安全です。
  5. 単語の境界は出力で保持する必要があります。
  6. 最短のコードが勝ちます。

たとえば、プログラムはのBegin/With.Type&Contentために出力する必要がありますBeGin/wITH.tyPE&conTeNt

Some test cases:
 "aGeNT ACcEpT/LEngTh-tYPe USeR raNgE.TyPe" 
 "type&AgeNt/CC/COnteNt lEnGth#acCePT/AgeNt.RAnGe-Cc/contEnt/cODe" 
 "cc/rEspoNCe.lEngtH#tYpE-witH&UsEr/bEgIN&uSer.AGEnT&begIn/aCCEPt/Cc" 
 "lENgTH#USeR.tYpE/BeGiN&LENGth tYpe/ACCEpt#rANge/codE&AnD-ACCepT/ConTenT" 
 "contENT/ACcEpT" 
 "BeGin/wITH.tyPE&conTeNt"
 "Code.cc#User.lenGTh-USer-AND&tyPE TypE&leNgtH.tYPe usER.UseR&with" 
 "RaNgE&COnTeNT WITh CoNTENT-TypE tyPe"
 "BEgin COdE#uSeR#aGeNt.USeR"
 "TypE LENGth"

2
あなたが大文字と呼ぶものは、実際にはラクダケースへの変換です。
ピエールアラード

6
@ArlaudPierreいいえ、彼が「テストケース」として与えたものは、ラクダケースに似ています。大文字と呼ばれるものは、タイトルケースに近いものです。
Iszi

テストケースに期待される出力を提供していただけますか?いくつかの組み込み関数は、すべて大文字の単語(/CC/2行目や-AND&7行目など)をそのままにしておくことを前提としているようです。この挑戦でこれは大丈夫ですか?
Iszi

入力は常に単語で始まりますか、それとも区切り文字で始まりますか?
レバツノク14年

回答:


7

GolfScript、36 27 19文字

0\{95&+.47>32*\}%\;

仕様に従ってすべての入力に対して機能する非常に基本的なGolfScriptアプローチ。サンプルはオンラインでテストできます


涼しい。私のソリューションがプロのソリューションの少なくとも2倍かどうかに興味がありました。:)しかし、私はあなたが一日が終わる前にこれを数回短縮すると確信しています。
マナトワーク

@manatworkさて、2つの要素があります;-)まだすべてのスワップに不満があります。
ハワード

あなたは私を失望させないことを知っていました。
マナトワーク

22

Python 3,22

print(input().title())

このコードは、stdinからの入力として文字列を受け取り、stdoutに大文字の出力を提供します。

例えば:

入力:

BEGIN/wITH.tyPe&cOnTENt

出力:

Begin/With.Type&Content

次のコードは、複数行入力用です(必要な場合)

Python 3、46

import sys
for i in sys.stdin:print(i.title())

while 1:print(input.title())は、最後のコードと同等の短いものです。
Ramchandra Apte

1
@RamchandraApteそれが許可されているかどうかはわかりません。あなたのコードはで死んでしまう例外EOFErrorすぐにヒットのようにEOF
Wasiの

1
ゴルフの一般的なコンセンサスは、出力が正しい限り、エラーは重要ではないということだと思います
ボラティリティ

ダン; この質問を見た途端、私はこれについて考えましたが、あなたは私をbeatりました。+1
ジャスティン

+1わいせつに見えないので、golfscriptよりもこの方が好きです。
ティムセギーン14年

6

Mathematica 62

データ

tests={"aGeNT ACcEpT/LEngTh-tYPe USeR raNgE.TyPe","type&AgeNt/CC/COnteNt lEnGth#acCePT/AgeNt.RAnGe-Cc/contEnt/cODe","cc/rEspoNCe.lEngtH#tYpEwitH&UsEr/bEgIN&uSer.AGEnT&begIn/aCCEPt/Cc","lENgTH#USeR.tYpE/BeGiN&LENGth tYpe/ACCEpt#rANge/codE&AnD-ACCepT/ConTenT","contENT/ACcEpT","BeGin/wITH.tyPE&conTeNt","Code.cc#User.lenGTh-USer-AND&tyPE TypE&leNgtH.tYPe usER.UseR&with","RaNgE&COnTeNT WITh CoNTENT-TypE tyPe","BEgin COdE#uSeR#aGeNt.USeR","TypE LENGth"}

コード

StringReplace[ToLowerCase@#,WordBoundary~~x_:>ToUpperCase@x]&

使用法

f["aGeNT ACcEpT/LEngTh-tYPe USeR raNgE.TyPe"]

「Agent Accept / Length-TypeユーザーRange.Type」

f /@ tests

{「Agent Accept / Length-Type User Range.Type」、
「Type&Agent / Cc / Content Length#Accept / Agent.Range-Cc / Content / Code」、「Cc / Responce.Length#Type-With&User / Begin&User.Agent&Begin / Accept / Cc」、「Length#User.Type / Begin&Length Type / Accept#Range / Code&And-Accept / Content」、「Content / Accept」、
「Begin / With.Type&Content」、
「Code.Cc#User.Length-User -And&Type Type&Length.Type User.User&With "、
" Range-Content With Content-Type Type "、
" Begin Code#User#Agent.User "、
" Type Length "}


-1これは基本的に正規表現だ
CalculatorFeline

Mathematicaは正規表現を直接実行できますが、別のものを使用しました。これは正規表現に似ていますが、正規表現ではありません。
-DavidC

%% %%% % %%
電卓


5

PHP:78 73 65 64文字

$b=ucfirst;foreach(str_split($s)as$c)echo$b($c),!$b[0]=$c<A?u:l;

入力はに渡され$sます。文字列を文字の配列として操作します。

シンプルな2ステートマシンです。文字列の字句順に依存しており、パーサーは、場合によっては文字列を入力するつもりであると自動的に仮定します。

状態は$b、次の文字で呼び出す必要がある関数の名前として格納され、表されています。ucfirst入力lcfirstが短く、単一の文字列のstrtolower/ と同じ動作をしstrtoupperます。また、1文字だけ異なるため、状態を保存するために効率的に使用できます。元のバージョンでは、状態をブール値で明示的に保存する必要がありました。

echoはブール値falseに対して何も出力しないため!、echoステートメントで割り当て(この場合は真実です)を「隠す」ためにコンマと演算子を使用しました。これにより、を削除してキャラクターを保存できました{}


インラインコードの代わりにコードブロックマークアップを使用してください。CodeGolf UserScript Enhancement Packなどのスクリプトは、コードの下にサイズを挿入できます。ちなみに、コードでは3つのスペース文字をすべて削除できます。
マナトワーク

$b=ord($c)>64;試す代わりに$b=$c>"@";。または$b=$c>=A;、警告を出すAFAIR でも、良いコーディングの実践はここでは美徳ではありません。
マナトワーク

@manatworkありがとう、それを考えていませんでした。とにかく、未設定の変数を使用するための警告を既に投げています。
ティムセギーン

うーん... $ bを単なるフラグとして使用せず、実際の関数名をその中に保存するのはどうですか?$b=ucfirst;foreach(str_split($s)as$c){echo$b($c);$b[0]=$c>=A?l:u;}
マナトワーク

@manatwork素晴らしい!私は関数でそれを行う方法を考えていました。私の試みはすべて大きかった。
ティムセギーン

4

C、83

n;main(c){c=getchar();putchar(c>96?n?c:(n=c-32):c&64?n?c+32:(n=c):(n=0,c));main();}

行を取得しstdin、それらをに変換しますstdout。(好むSIGINTEOF。)


4

Powershell:37-43

入力方法に応じて...

ユーザーに入力を求める:43

(Culture).TextInfo.ToTitleCase((read-host))

パイプラインから入力を取得:38

(Culture).TextInfo.ToTitleCase($input)

スクリプトの実行時に引数として入力を提供します。37

(Culture).TextInfo.ToTitleCase($args)

注:上記のスクリプトは、すべて大文字の単語を無視し、そのままにします。これを考慮する必要がある場合は、タイトルケース変換の前に入力を強制的に小文字にする必要があります。これにより、最初のメソッドに10文字が追加され、他の2つのメソッドに12文字が追加されます。

(Culture).TextInfo.ToTitleCase((read-host).ToLower())
(Culture).TextInfo.ToTitleCase("$input".ToLower())
(Culture).TextInfo.ToTitleCase("$args".ToLower())

仕様に従って動作しません。試してくださいfoo:bar
モルメギル

@Mormegilどっち?少なくともホストの読み取りバージョンは、私にとっては問題なく機能します。質問内のすべてのテストケースに対してテストし、質問へのコメントで投稿した特別なケースを除き、すべてが期待どおりに返されました。
イスジ

:(コロン)はルール#4の単語区切りとしてリストされていないため、AFAICS foo:barFoo:barなく である必要がありFoo:Barます。しかし、それは仕様の私の(非常に厳密な)読みです。
モルメギル

2
@Mormegilまあ、これはきちんとしている。この曖昧さを解決するために仕様が調整されたように見えますが、同時にこの回答は無効になりません。
イスジ

1
あなたは置き換えることができget-cultureculturecodegolf.stackexchange.com/a/778/1308を
ダンコ

4

Java-209文字

class C{
public static void main(String[]a){
for(String b:a){
char[]k=b.toLowerCase().toCharArray();
for(int i=-1;i<k.length;i++){if(i<0||"-. /&#".indexOf(k[i])>=0)k[++i]=(char)(k[i]-32);}
System.out.println(k);}}}

読みやすくするためだけに改行を追加しました。


3

R、143 116

少し長めのソリューションかもしれませんが、ここに行きます:

f=function(x){a=sapply(1:nchar(x),function(y)substr(tolower(x),y,y));d=c(1,which(!a%in%letters)+1);a[d]=toupper(a[d]);cat(a,sep="")}

わずかに手放して説明した:

f <- function(x){
    #Split the string in characters and "lower-case" everything
    a <- sapply(1:nchar(x),function(y)substr(tolower(x),y,y))
    #Select the first character and each character following a 
    #character that doesn't belong to lower case alphabet
    d <- c(1,which(!a%in%letters)+1)
    #Make those ones uppercase.
    a[d] <- toupper(a[d])
    #Output (stdout) while pasting them back together.
    cat(a,sep="")
    }

編集:116文字

ここでの主な課題は、ベクトル化substrです。もう少し冗長な方法があります。

f=function(x){n=1:nchar(x);a=mapply(substr,tolower(x),n,n);d=c(T,!a%in%letters);a[d]=toupper(a[d]);cat(a[n],sep="")}

インデント:

f <- function(x){
    n <- 1:nchar(x)
    a <- mapply(substr,tolower(x),n,n)
    d <- c(T,!a%in%letters) #This has been simplified as well
    a[d] <- toupper(a[d])
    cat(a[n],sep="") #Because a is now 1 char longer than x, need to subset a
    }

使用法:

> f("aGeNT ACcEpT/LEngTh-tYPe USeR raNgE.TyPe")
Agent Accept/Length-Type User Range.Type

一部のキャラクターを保存できます。以来a小文字のみのconsits、大文字と一致するかどうかを確認する必要はありませんLETTERS
スベンホーエンシュタイン

@SvenHohenstein確かに、ありがとう!
plannapus

もう一つ:あなたは置き換えることができTRUET
スベンホーエンシュタイン

もともと私は後者を持っていましtolowerた。
プランナパス

OK、ここに別の一つだ;-)あなたは置き換えることができmapply(substr,tolower(x),n,n) strsplit(tolower(x),"")[[1]]1つの文字を保存します。
スベンホーエンシュタイン

3

Befunge 98 - 24 45

~\j:'``!3*j' -;:'``b*j:'/`!3*j' +#;:,'/`!jc#@

これを書くと頭が痛い。

これは入力を受け取り~、前の文字がセパレータの1つであった場合(または前の文字がなかった場合)、実行します

:'``!3*j' -;

このスニペットは文字を取得し、そのASCII値がより大きいか等しい場合a、32を減算し、大文字に変更します。未満の場合a3*j調整をスキップします。その後、次の部分はスキップします。この部分は、大文字から小文字への変更を処理します(次の部分とマージできると確信しています;方法がわかりません)。

:'``b*j:'/`!3*j' +#;

文字が印刷され(,)、文字が境界の1つであるかどうかがチェックされます:

'/`!

基本的に、文字をのASCII値と比較します/。文字が境界ではない場合、コードはプッシュし12、次回に大文字の調整をスキップします。#終了プログラム:をスキップし、@入力の終わりに達すると~、コード実行をに送り返し@、プログラムを終了します。


3

ルビー:60 51 50 47文字

$_.downcase.chars{|c|$><<$/=$/<?0?c.upcase: c}

サンプル実行:

bash-4.1$ for line in "${test[@]}"; do printf '%-75s | %s\n' "$line" "$( ruby -ne '$_.downcase.chars{|c|$><<$/=$/<?0?c.upcase: c}' <<< "$line" )"; done
aGeNT ACcEpT/LEngTh-tYPe USeR raNgE.TyPe                                    | Agent Accept/Length-Type User Range.Type
type&AgeNt/CC/COnteNt lEnGth#acCePT/AgeNt.RAnGe-Cc/contEnt/cODe             | Type&Agent/Cc/Content Length#Accept/Agent.Range-Cc/Content/Code
cc/rEspoNCe.lEngtH#tYpE-witH&UsEr/bEgIN&uSer.AGEnT&begIn/aCCEPt/Cc          | Cc/Responce.Length#Type-With&User/Begin&User.Agent&Begin/Accept/Cc
lENgTH#USeR.tYpE/BeGiN&LENGth tYpe/ACCEpt#rANge/codE&AnD-ACCepT/ConTenT     | Length#User.Type/Begin&Length Type/Accept#Range/Code&And-Accept/Content
contENT/ACcEpT                                                              | Content/Accept
BeGin/wITH.tyPE&conTeNt                                                     | Begin/With.Type&Content
Code.cc#User.lenGTh-USer-AND&tyPE TypE&leNgtH.tYPe usER.UseR&with           | Code.Cc#User.Length-User-And&Type Type&Length.Type User.User&With
RaNgE&COnTeNT WITh CoNTENT-TypE tyPe                                        | Range&Content With Content-Type Type
BEgin COdE#uSeR#aGeNt.USeR                                                  | Begin Code#User#Agent.User
TypE LENGth                                                                 | Type Length

1
(テストされていない)l==l.swapcaseと同じではありませんl<?0か?少なくとも、このタスクに許可された入力については。
ハワード

はい。バットマンは、他のセパレーターを必要としないことを強調しました。実際、それはもっと短いです。@Howard、ありがとうございます。
マナトワーク

2

C#– 110

単純な有限状態マシンベースの処理:

x.Aggregate(new{b=1>0,r=""},(s,c)=>new{b="-. /&#".Contains(c),r=s.r+(s.b?Char.ToUpper(c):Char.ToLower(c))}).r

(大文字にする場所xはどこstringですか)

もちろん、(仕様が更新された後に)退屈したい場合は、次を使用できます。

new CultureInfo(9).TextInfo.ToTitleCase(x)

または、すべての退屈なボイラープレートで:

class C{static void Main(string[]a){System.Console.WriteLine(new System.Globalization.CultureInfo(9).TextInfo.ToTitleCase(a[0]));}}

C#はスクリプト言語ではないため、コンパイルしません。これをクラスにカプセル化する必要があります。
ピエールアラード

2
誰が言ったのですか?Microsoft (R) Roslyn C# Compiler version 1.2.20906.1 Loading context from 'CSharpInteractive.rsp'. Type "#help" for more information. > "foobar".Aggregate(new{b=1>0,r=""},(s,c)=>new{b="-. /&#".Contains(c),r=s.r+(s.b?Char.ToUpper(c):Char.ToLower(c))}).r "Foobar"しかし、退屈なボイラープレートが本当に気になる場合は、112文字を追加します。
モルメギル

1
あなたはカットすることができますpublicし、string[]a定型から
Johnbot

そうそう、あなたは正しいとしているpublicが、それは私が処理するものである...と私は、引数を必要とする
Mormegil

2

Javascript 102

prompt().split(o=q='').map(function(c){o+=(q)?c.toLowerCase():c.toUpperCase(),q=('A'>c)?0:1})
alert(o)

あなたが必要とすることはありません()三元状態の周り。さらに、2番目の3項も必要ありませんfunction(c){o+=q?c.toLowerCase():c.toUpperCase(),q='@'<c}
マナトワーク

2

フォース、135

: s swap ;
: c 1 begin key dup 96 > if s if 32 - then 0 s 
else dup 64 > if s 0= if 32 + then 0 s then else 1 s then then emit again ; c

翻訳された出力はstdout、から読み取られるときに書き込まれますstdin


1
「その後、再び放出する」と韻を踏む!

2

Befunge-98(29)、C(65)

メソッド/アルゴリズムはほとんど同じなので、同じ投稿に両方のバージョンを含めます。どちらも、文字を小文字にするかどうかを知るために、最後の文字が記号であるか文字であるかを追跡することに依存しています。

Befunge-98(29)
#@~:'0` #v_,0>
',++@'% '<   ^
C(65)
c,d;main(){for(;~(c=getchar());d=c>48)putchar(c<48?c:c&95|32*d);}


1

Excel VBA-11文字

イミディエイトウィンドウで

?[Proper()]

VBscript

Set xlapp = CreateObject("excel.application")
wscript.echo xlapp.Evaluate("Proper(""BeGin/wITH.tyPE&conTeNt"")"

使用方法に関するヘルプを提供できますか?「コンパイルエラー:外部名が定義されていません」というメッセージが表示されます。(Word 2013の[開発]タブで[Visual Basic]をクリックし、次にVisual Basic for Applicationでイミディエイトウィンドウにコードをコピーして貼り付け、Enterキーを押しました。)
manatwork

@manatwork Excelであることを明確にすべきでした。これはWordから実行できますが、Excelを自動化する必要があるため、パスが長くなります。
brettdj

1
涼しい。VBAがExcel 2013から開始されたときに完璧に動作します
manatwork

同様にExcelでも直接動作します:=PROPER(A1)、11バイト
ヴェルニッシュ

1

AWK、 113 103バイト

{for(;++i<=split($0,a,"");){s=a[i]
O=O (L?tolower(s):toupper(s))
L=1
if(index("-. /&#",s))L=0}print O}

これは単一行のコンテンツでは正常に機能しますが、複数行の入力ではいくつかのイニシエートを追加する必要があります

{O=""
for(L=0;++i<=split($0,a,"");){s=a[i]
O=O (L?tolower(s):toupper(s))
L=1
if(index("-. /&#",s))L=0}print O}

レコードをフィールドに自動的に分割し、そのフィールドを変更することを利用できれば便利ですが、フィールドセパレータは失われます。:(

私はこれが答えのゴルファーではないことを知っており、これはかなり古い質問ですが、AWKはCGの答え空間では過小評価されていると感じています:)

(コードをテストしてくれた@manatworkに感謝します。今は動作するはず;です。)また、フローを変更しましたが、一部を改行で置き換えることにより、バイト数を同じに保ちました。)


1
本気ですか?コードのいずれもどちらで必要な出力を生成するようでないgawkmawkまたはoriginal-awk。(Ubuntuでテスト済み)
manatwork

gawkRHEL6ボックスを使用して作成されましたが、Windowsボックスに転写されました。転写の問題が非常によくある可能性があります。同じマシンでテストと投稿ができるようになったら、仕事の後にテストしてみます。 l=0する必要がありますL=0
ロバートベンソン

うまくいけば、@ manatworkで動作するようになります。テストをありがとう。:)
ロバートベンソン

1
今は正しく動作しているようです。すべてのテストケースをチェックしたわけではありませんが、少し減らすことができるようです{for(l=split($0,a,$0="");i<=l;s=a[++i]){$0=$0(L?toupper(s):tolower(s));L=index("-. /&#",s)}}1
マナトワーク

私はあなたが変更$0を使用し1printコマンドを避けるためのラベルが私がやろうとは思っていなかったことです。今後のゴルフのために心に留めておく必要があります:)
ロバートベンソン

1

PHP(> v5.4.32)-25文字

<?=ucwords($a,'-. /&#')?>

説明:

  • ucwords()は組み込みのPHP関数です

  • 最初のパラメーター$aは入力です

  • 2番目のパラメーターはデリミターです(テストケースでアルファベット以外の文字が見つかりました)

  • 使用のため、リターン/エコー/プリントが想定されます <?= ?>

リンク:


1
こんにちは、サイトへようこそ!私は、現時点ではこれがデフォルトで許可されていないスニペットだと思いますが、あなたが使用して完全なプログラムとして41のバイトを取得することができます-Rオンラインそれをお試しください!または42引数を使用:オンラインで試してみてください!
ドムヘイスティングス

0

T-SQL、179

DECLARE @T VARCHAR(MAX)='foo',@X VARCHAR(2),@ INT=0WHILE @<LEN(@T)SELECT @X=SUBSTRING(@T,@,2),@+=1,@T=STUFF(@T,@,1,IIF(@X LIKE'[a-Z]_',LOWER(RIGHT(@X,1)),UPPER(RIGHT(@X,1))))PRINT @T

SQL Server 2012でSELECTバージョンをお試しください ここ

「foo」を入力文字列に置き換えます。文字カウントは長さゼロの文字列用です。このコードは、インデックスを使用して文字列を走査し、前の文字に基づいてその位置の文字を大文字または小文字にします。



0

Powershell、77 75バイト

このソリューションは、タスクルールを完全に満たしています(あいまいな例でもfoo:bar)。

-join($args|% t*y|%{"$_"|%('ToU*r','ToL*r')[+$l];$l=!('# -./&'|% Co*s $_)})

@Isziの組み込み関数ToTitleCaseを使用したPowershell ソリューションも参照してください。

テストスクリプトの説明:

$f = {

-join(
$args|% t*y|%{                   # for each char from input string
    "$_"|%('ToU*r','ToL*r')[+$l] # evaluate ToUpper or ToLower method depend on $l (lower) value
                                 # Note the variable $l is not defined for a first char
                                 # so it evaluates toUpper for the first char 
    $l=!('# -./&'|% Co*s $_)     # golfed form for $l=!'# -./&'.Contains($_) expression
                                 # =0 if the current char is specified separator (toUpper for next char)
}                                # =1 otherwise (toLower for next char)
)                                # finally, join all chars to a result string

}

@(
    ,('foo:bar'                                                                 ,'Foo:bar')
    ,('aGeNT ACcEpT/LEngTh-tYPe USeR raNgE.TyPe'                                ,'Agent Accept/Length-Type User Range.Type')
    ,('type&AgeNt/CC/COnteNt lEnGth#acCePT/AgeNt.RAnGe-Cc/contEnt/cODe'         ,'Type&Agent/Cc/Content Length#Accept/Agent.Range-Cc/Content/Code')
    ,('cc/rEspoNCe.lEngtH#tYpE-witH&UsEr/bEgIN&uSer.AGEnT&begIn/aCCEPt/Cc'      ,'Cc/Responce.Length#Type-With&User/Begin&User.Agent&Begin/Accept/Cc')
    ,('lENgTH#USeR.tYpE/BeGiN&LENGth tYpe/ACCEpt#rANge/codE&AnD-ACCepT/ConTenT' ,'Length#User.Type/Begin&Length Type/Accept#Range/Code&And-Accept/Content')
    ,('contENT/ACcEpT'                                                          ,'Content/Accept')
    ,('BeGin/wITH.tyPE&conTeNt'                                                 ,'Begin/With.Type&Content')
    ,('Code.cc#User.lenGTh-USer-AND&tyPE TypE&leNgtH.tYPe usER.UseR&with'       ,'Code.Cc#User.Length-User-And&Type Type&Length.Type User.User&With')
    ,('RaNgE&COnTeNT WITh CoNTENT-TypE tyPe'                                    ,'Range&Content With Content-Type Type')
    ,('BEgin COdE#uSeR#aGeNt.USeR'                                              ,'Begin Code#User#Agent.User')
    ,('TypE LENGth'                                                             ,'Type Length')
) | % {
    $s,$e = $_
    $r = &$f $s
    "$($r-ceq$e): $r"
}

出力:

True: Foo:bar
True: Agent Accept/Length-Type User Range.Type
True: Type&Agent/Cc/Content Length#Accept/Agent.Range-Cc/Content/Code
True: Cc/Responce.Length#Type-With&User/Begin&User.Agent&Begin/Accept/Cc
True: Length#User.Type/Begin&Length Type/Accept#Range/Code&And-Accept/Content
True: Content/Accept
True: Begin/With.Type&Content
True: Code.Cc#User.Length-User-And&Type Type&Length.Type User.User&With
True: Range&Content With Content-Type Type
True: Begin Code#User#Agent.User
True: Type Length

0

QBasic、74バイト

1c$=LCASE$(INPUT$(1))
IF f=0THEN c$=UCASE$(c$)
f=c$>"@
?c$;
IF""<c$GOTO 1

バイトはCP-437でカウントされます。シングルバイト(文字コード20)です。

ここでの入力方法は少し奇妙です。文字は一度に1つずつ入力され、表示される前に大文字が変換されます。入力aGeNTすると、画面にとして表示されますAgent。押すEnterとプログラムが終了します。



-2

PHP-23文字

mb_convert_case($ w、2);

動作するにはphp_mbstringが必要です


1
5.3.26 mb_convert_case("BeGin/wITH.tyPE&conTeNt", 2);では、「Begin / With.Type&Content」ではなく「Begin / with.type&content」を返します。
マナトワーク
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.