• ベストアンサー

コンピューター言語です

入力した文字列 "YYYY/MM/DD [Message]" を scanf()関数にて一度で読み込み、 このように入力したら 1963/8/28 [This is rice.] このように出力させたいです 1963年08月28日 This is rice. お助けください。

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

  • ベストアンサー
  • chie65535
  • ベストアンサー率44% (8569/19470)
回答No.1

#include <stdio.h> void main(void) { int c,y,m,d; char s[256]; c = scanf("%4d/%2d/%2d [%[^]]]",&y,&m,&d,s); if (c != 4) printf("入力不正\n"); else printf("%4.4d年%2.2d月%2.2d日 %s\n",y,m,d,s); }

questiondayo
質問者

お礼

ありがとうございます

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • yyyy/mm/ddをyymmddの文字列に

    一つの列にyyyy/mm/dd(日付)とyymmdd(文字列と標準が混在)が混在しているものを、全て文字列のyymmddにするために、区切り位置で全てを文字列にしてから文字操作でyymmddにしようとしてます。 vbaで区切り位置を使用してyyyy/mm/dd(日付)を文字列に変換するとdd/mm/yyyyと表示されてしまいます。vbaでやらずにそのまま区切り位置で文字列に変換するとそのままyyyy/mm/ddの表示のままなのに、vbaでやるとなぜdd/mm/yyyyになってしまうのでしょうか? vbaで日付yyyy/mm/ddを文字列yyyy/mm/ddに変換する方法を教えてください。 よろしくお願いいたします!

  • EXCEL VBAでのCSV出力について

    EXCELに入力されたデータをCSV出力するプログラムを作成しました。データには日付が入っており年月日がYYYY/MM/DDの形で入力されています。これをハンド作業で名前をつけて保存でCSVに出力すると年月日はそのままの状態で保存されますが、VBAで保存するとMM/DD/YYYYの形になってしまいます。この状態で保存されると、次にEXCELで読み出すと年月日が文字列扱いになってしまいます。新しいマクロの記録で行っても結果は同じでした。 VBAで保存する際、YYYY/MM/DDで保存する方法はないでしょうか。 また、MM/DD/YYYYで保存されたCSVを日付としてEXCELに認識させる方法はあるでしょうか。 教えてください。よろしくお願いします。

  • Excelマクロで不要な行を繰り返し処理で削除する

    下記の図表【事前】のA列に時間(シリアル値)が入力されていますが、 これをマクロを使って不要な時間帯のデータを行ごと削除したいです。 それを実行するためのマクロをご教示頂けますでしょうか? 削除対象の条件 ・9:00:00~18:00:00以外の夜間や早朝の時間帯は削除する。 その他 ・データが入力されている行数分繰り返し処理 ・秒数、分数は全て0 ・列は3列(B、C列は任意) ・Excelのバージョンは2007 【事前】   A                        B      C 1 yyyy/mm/dd 01:00:00 ※削除対象 2 yyyy/mm/dd 23:00:00 ※削除対象 3 yyyy/mm/dd 09:00:00 4 yyyy/mm/dd 15:00:00 5 yyyy/mm/dd 17:00:00 6 yyyy/mm/dd 19:00:00 ※削除対象 7 yyyy/mm/dd 04:00:00 ※削除対象 【事後】   A                        B      C 1 yyyy/mm/dd 09:00:00 2 yyyy/mm/dd 15:00:00 3 yyyy/mm/dd 17:00:00

  • C言語でプログラミング。(文字を置き換えるやり方)

    scanfなどで入力した文字列(アルファベット)の中にある特定の文字を違う文字に置き換えるようなプログラムってどのように作ったらよいのでしょうか?? 例えば、(sという文字をtと言う文字に変える・・・sound→tound)などのように、入力した文字を置き換えて、もう一度表示するようにするには、どうしたらよいのでしょうか? 関数を使ってプログラムを作りたいと思っているのですが・・・ なにかヒントなどがあったらお願いします。

  • TCL言語の文字コード指定方法

    UNIX環境にて、OS時間を以下のフォーマットで 出力したいと考えています。 YYYY/MM/DD hh時mm分ss秒 ファイル出力の関数はTCL言語にて実装しています。 上記の関数をC言語で実装した関数より呼び出します。 ファイルを出力した際、出力結果にて日本語部分が 文字化けしてしまいます。 OS時間の取得はTCL関数内で実施しています。 文字コードをうまく設定できていないのだと思うのですが、 ファイル出力関数を呼び出す関数側(C言語で実装している関数側)にて、 文字コードを指定する方法をご存知の方はいらっしゃいませんでしょうか? よろしくお願い致します。

  • EXCEL表示変更について

    20120111 20131203 といったEXCELにある文字列について、 2012/01/11 2013/12/03 といった、yyyy/mm/ddに 直すことは可能でしょうか。

  • Excelの日付型の入力規則

    Excel2007です。 あるファイルで特定の列に"yyyy/mm/dd"の日付型の値を入力するように書式設定しています。 ところがそのファイルは社内で多数の人が参照・入力をするもので、中には 「2011/11/11」 とすべきところを 「11.11.11」 というように入力する人もいます。 このファイルにはマクロが含まれていて、その日付型の列を参照して帳票を出力するようになっているので、「11.11.11」だと日付型のデータと認識してくれずに誤った情報を出力してしまうことがあります。 データの入力規則を設定して"yyyy/mm/dd"以外の書式を入力できないようにしてみましたが、社内の人から「入力の値が正しくありません」というメッセージが出るたびにメッセージの意味がわからず「入力ができない」と問い合わせが来ます。 PCをほとんど扱えない人が多い上にパートさんバイトさんなどの入れ替わりが激しいのでなかなか説明が行き届かず… 何をしたいかというと、「11.11.11」のように入力された場合でも「2011/11/11」に強制的に変換されるようにできますでしょうか? ※ちなみに社内にはExcel2003を使っている人もいます

  • EXCEL 日付の入力形式

    こんにちは。 日付が、dd/mm/yyyyの形式で入力されたデータをもらいました。 関数を利用したいのでEXCELに日付として認識させたいのですが、 セルの書式設定で設定してもだめなようです。 質問 1)yyyy/mm/ddの形式で入力されていないと日付として認識されないのでしょうか? 2)現在の形式のまま、日付として認識させる方法はありますか? 3)dd/mm/yyyyをyyyy/mm/ddに変換する方法はありますか? 以上、よろしくお願いします。

  • 半角のみの入力制限

    使用しているのはExcel2003です。 セルの表示形式は文字列のまま、1つのセルに半角のみ入力制限をyyyy/mm/dd hh:mm:ssでかけたいのですが、入力規則で制限できる方法ありますでしょうか? 全角の空白、時間の『:』を全角『:』で入力してくる人もいるので、上記表示以外受け付けできないようにしたいです。 数式を組めば簡単に解決しますが、そのEXCELをそのままCSV変換しインポートするため 数式だとエラーではじかれるので、それもできません。 入力規則は問題ないので色々調べつくして、トライしてみた入力規則が、 文字列、次の値に等しい、19(yyyy/mm/dd hh:mm:ss 19文字)、エラーメッセージ(念のための)、日本語入力オフです。 ただ、全角半角までは区別してくれないので、それをどうしたらいいのか・・・ よろしくお願いします。

  • Excel VBA で日付を4ケタの数値に変換させるには?

    ある日付データを 『月』と『日付』のみの4ケタの"文字列"にさせて表示処理させたいのですが、困っております。 現在、VBAを使用しないで処理させると…こんな感じで困っています。 1.日付を yyyy/mm/dd 表示 2.編集~ 『/』のみを全て『0』に変換 3.RIGHT関数で4ケタ(または5ケタ)抜き取る *データ* 日付    yyyy/mm/dd  変換      RIGHT(4ケタ) 1月5日  2005/1/5     20050105   0105 1月10日  2005/1/10    200501010   0110  ・    ・  ・    ・ ▲不具合状況 1."1月10日" のように日付が2ケタになる日は "1010" のように表示がずれる。RIGHT(○,5) で対処する方法もあるが…効率があまり良くない。 2."yyyy/mm/dd" のデータを直で "RIGHT( )" で処理させると思ったとおりの値が戻ってこない。 yyyy/mm/dd      RIGHT() 2005/1/5    →   8537 …変な値が戻ってくる? VBAで一気にやる方法ありますでしょうか? お知恵を拝借ください!

このQ&Aのポイント
  • 安倍銃撃事件により、弱者が強者に報いる可能性が示された。
  • 一般人でもネットの知識から武器を製造し、強者を狙う風潮が生まれるかもしれない。
  • 弱者をいじめる行為に対する抑止力として効果があるかもしれないが、圧政への発展も懸念される。
回答を見る