• ベストアンサー

書式文字列

書式文字列と文字列リテラルの意味の違いがわかりません。おしえていただけないでしょうか

質問者が選んだベストアンサー

  • ベストアンサー
  • rentahero
  • ベストアンサー率53% (182/342)
回答No.3

書式指定文字列とは特定の関数で用いられる、入出力形式を指定するための文字列のこと。 具体的には、printf系やscanf系などの「関数」が解釈する文字列を指しているポインタのこと。 文字列リテラルとは、ソースファイル上に直接記入される定数として利用される文字列のこと。 具体的には、コンパイラが直接解釈してリンカが配置する整数定数式のこと。プログラム中では、アドレス定数式として扱われる。 書式指定文字列もソースファイル上に直接定数式として書き込んだ場合、文字列リテラルの一種。 ちょっとややこしいので、わからない点は遠慮なくこの回答に補足の形で質問してください。

その他の回答 (2)

noname#30727
noname#30727
回答No.2

「"」ダブルコーテーションでくくられたものが文字列リテラルです。 printf("%d", 10); "%d"は文字列リテラルで、そのままprintfの書式文字列になります。 char *fmt = "%d"; printf(fmt, 10); この場合のprintfに渡すfmtは、printfの書式文字列ですが、文字列リテラルではありません。

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.1

printfなどでいう話だと思いますが 書式文字列は、%で始まる、引数の出力(scanfでは入力)の書式を指示するものです。 それ以外の、そのまま使われる文字列は、リテラルです。

関連するQ&A

  • nullを文字列にするには?

    nullなどリテラルを文字列にする方法が知りたいです。 何でも.toString()で文字列になるのかと思っていましたが、nullはダメでした。

  • 文字リテラルと文字列リテラルの違いについて

    文字リテラルの場合は'’でくくる。 文字列リテラルの場合は""でくくることを知りました。 しかし、文字リテラルも""でくくることが出来るのですが、 どちらも""でくくってしまえば簡単な気がします。 これらを区別する理由はあるのでしょうか? ※OKWAVEより補足:「Webシステム開発」についての質問です。

    • ベストアンサー
    • Java
  • Excelの「’」とセルの書式設定(文字列)の違い

    こんばんわ。 Excelの文字列表示について、教えてください。 数字を入力する際に、先頭に「'」を入力すると 文字列として入力することが出来ますが、 数字が入っているセルのセルの書式設定から 「文字列」に表示形式を変更することとの 違いはなんなんでしょうか? やり方は違うけれど、結果は同じということでしょうか? 「'」を入力すると、データが文字そのものに変わり、 表示形式を変更すると、見た目だけ(左揃えになるなど) 文字列のように見えるだけで、データは 数字のままということなんでしょうか?? また、文字列として入力された数字を Value関数で数値に変換してしまうのと セルの書式設定で「数値」に変更するというものも 同じように、違いが良く分かりません。。。 もう、頭の中が「??」だらけです。 違いを教えていただけたら・・・と思います。 どうぞよろしくお願いいたします<m(__)m>

  • 【Excel】セルの書式設定で標準と文字列の違い

    「セルの書式設定」の「表示形式」での「標準」と「文字列」の違いについてです。 「文字列」は「[文字列]は、数値も文字列として扱います。セルには入力した値がそのまま表示されます」 とあります。 しかし「文字列」に数値を入力するとセルの左上に、グリーンの▼印がでてきて、「数値が文字列として保存されています」というエラー表示がでます。 数値も文字列として扱われるはずですがなぜなのでしょう。いちいち「エラーを無視する」にしなければならないので面倒だなと思いますので、今度は「標準」で入力しようと思いますが、 「標準」は「セルの値に対して一般の書式を適用します(特定の書式を指定しません)」 とのことです。一般の書式、特定の書式が何を指すのか分かりません。 文字列が、数値として扱われない理由と、「標準」「文字列」のそれぞれの特徴を教えてください。

  • セルの書式が標準なのに文字列にできるのはなぜ?

    会社のシステムで吐き出したデータですが セルの書式設定が標準なのに文字列となっています。 マクロを利用して、あるセルの値を別セルへ転記すると、 数字は数値に変換され、先頭の0は消え、桁数が多いと指数表示になってしまいます。 会社のシステムが吐き出したエクセルはセルの書式が標準なのに 中の数字が文字列でいられるのが疑問です。 会社のシステムの吐き出したデータは Microsoft Excel 2.1ワークシートで 全てのセルの書式設定は「標準」です。 で例えば 12345678901234 は 12345678901234 と表示されていて 「数値が文字列として保存されています」 となっています。(先頭に ' は入っていません) 0101という値のセルでも 表示は0101ですが 「数値が文字列として保存されています」 となっています。(先頭に ' は入っていません) それらのセルの値をマクロとかで別セルに転記すると 転記先では1.23457E+13 と表示されてしまいます。 (0101は101になります。) まっさらなエクセルに自分で手入力すると ・セルの書式設定が標準だと 12345678901234 ↓ 1.23457E+13になります。 ・セルの書式設定が数値だと 12345678901234 ↓ 12345678901234 ・セルの書式設定が文字列だと 12345678901234 ↓ 12345678901234 (ただし 数値が文字列と保存されています と注釈有) なのに会社のシステムの吐き出しデータは セルの書式設定が標準なのにもかかわらず 12345678901234 ↓ 12345678901234 (ただし 数値が文字列と保存されています と注釈有) となっています。 手入力で書式設定が標準の状態でセルに12345678901234 と表示させるには先頭に ' をつける方法しか知りませんが ' が無いのに表示されています。 でもこの該当セルをマクロで別セル(書式設定:標準)に転記すると 1.23457E+13 となります。 またシステムが吐き出したエクセルの同じシート内に 以下のマクロで転記すると ↓ Sub 転記() 行 = 2 Do If Cells(行, 6).Value = "" Then Exit Do If Cells(行, 6).Value >= 10 Then Cells(行, 7).Value = Range("A2") Else Cells(行, 7).Value = Range("A3") End If 行 = 行 + 1 Loop End Sub ↓ このマクロだと A列~F列が書式設定が標準なのに文字列として表示されているのですが 転記先のG列が書式設定が標準であっても 12345678901234 (数値が文字列と保存されています と注釈有) と同じ状態のまま転記できます。 新しいBOOKのシート2に 会社の吐き出しデータをシートコピーした後、 (セルの書式設定:標準だが文字列で表示されている) そのBOOKに登録されているマクロで シート2のセルからシート1のセル(書式設定:標準)に転記すると 数字は数値に変換され、先頭の0は消え、桁数が多いと指数表示 となってしまいます。 ちょっと混乱しています。 理屈等教えていただければと思います。お願いします。

  • ExcelのCell内の文字列の書式設定について

    Win XP office 2003です。 Excelについて質問致します。 Cell内にある文字列を打ち込み、書式設定で、 ・「両端揃え」にしても文字列は左づめに配置されます。 ・「均等割り付け(インデント)」にすると、中央に配置されます。 別途「左づめ」、「中央揃え」の書式設定があり、この設定はどのような時に利用するんでしょうか。 そもそも両者の使い分けはどのようなものでしょうか。 ・また、「均等割り付け(インデント)」の「(インデント)」とはどのような意味でしょうか。 ・ある文字列の間に空白を入れて、「均等割り付け(インデント)」を設定するとCell内の両端一杯に  文字列が配置されますが、空白を入れない場合でも文字列をCell内の両端一杯に配置させる設定は出来ないのでしょうか。 以上宜しくお願い致します。

  • エクセルの条件付き書式で、複数の文字列を条件に並べたいのですが

    エクセルで、条件付き書式の条件を         文字列AAA 又は 文字列BBB 又は 文字列CCC のいずれかだったら としたいのですが、 ボックスにどのようにそれらの文字列を書いたらよいのでしょうか?

  • 文字列から数値への変換

    セルの書式設定(表示形式タブ)で文字列を数値に変えるのと、 VALUE関数で文字列を数値に変えるのとでは何か違いがありますか? (excel2000です。)

  • よく、書式で出てくる ○○ ( ○○, ○○ [, ○○ ] ) の

    よく、書式で出てくる ○○ ( ○○, ○○ [, ○○ ] ) の [, って何ですか? PHPを最近はじめました超初心者です。 たとえば、書式の説明で mb_substr( '文字列', 取り出す範囲の開始位置 [, 文字数 ] ); ↑このようなものとかありますが、  [, ってミスですか? mb_substr( '文字列', 取り出す範囲の開始位置 , [ 文字数 ] ); ↑こうではないのですか? [ と , が入れ替わっているのは 何か意味があるのでしょうか?

    • ベストアンサー
    • PHP
  • 書式が文字列のセルへ数値をコピーしたい。

    すべてのセルの書式を文字列にした状態で、コピーした数字を 貼り付けると、「数字が文字列として保存されています」の エラーが出ます。 この状態では数式がうまく動作しないようなので、エラーがでない ようにしておきたいのですが、どうしたら良いでしょうか? 頭に0をつけたり、記号が混ざるものもあるので、セルの書式は 文字列のまま解決しなければなりません。 また、「このエラーを無視」すると、とりあえずエラー表示は 消えますが、再度クリックすると再びエラーが出現し、数式も うまく適用できません。 うまくエラーを吐かせずに文字列セルへ数字をコピーできない ものでしょうか? 方法をご存知の方、ご教授願います。