時刻文字列”YYYY/mm/dd hh:mm:ss”をchar time[14]に格納する方法
またその逆の方法(char time[14]から”YYYY/mm/dd hh:mm:ss”に変換)
http://www.funaba.org/en/programming-and-calendar.html
programming and calendar
質問の意味が解りません。
上記 time 変数は char の配列ですよね?
文字列そのものですので、strcpy() でコピーする事になります。…と言う回答があるでしょう。
恐らく質問者は date や time 型を扱うのでしょう。
ここの ctime や asctime を参照してください。
また、上記文字列は[14]には入りません。
19文字+セパレータなので[20]が必要です。
すいませんが、上記と同様です。
http://www.hatena.ne.jp/1103267957#
人力検索はてな - C言語の質問です。(初心者なのでわかりやすくお願いします。) 時刻文字列”YYYY/mm/dd hh:mm:ss”をchar time[14]に格納する方法 またその逆の方法(char time[14]から”..
1.
int i;//カウント用
char delmit[5][2]={”/”,”/”,” ”,”:”,”:”};//デリミタ
char date[14]=”20041216151215”;//元のデータ
char date2[20],tmp[4]; //結果用とテンポラリ
strcpy(date2,date);
date2[4]=0;
//年のみ転送
for(i=0;i<5;i++){
//デリミタを付加
strcat(date2,delmit[i]);
//追加するのは2桁ずつなので取り出したい場所を2文字ずつ抽出して代入
strncpy(tmp,date+4+i*2,2);
tmp[2]=0;
//それをdate2に連結
strcat(date2,tmp);
}
2.
int i;//カウント用
char date[20]=”2004/12/16 15:12:15”; //元のデータ
char date2[14];//結果用
strcpy(date2,date);
for(i=0;i<5;i++){
//デリミタを付加
//ずらすのは2桁ずつデリミタを含む3文字なので、取り出したい場所を3文字ずつ抽出してコピー
strcpy(date2+4+i*2,date+5+i*3);
}
ありがとうございます!
Yahoo! JAPAN
YYYY/mm/dd hh:mm:ss、YYYYmmddhhmmssという形式、文字列長が保証されているのであれば
char date_a[20] = ”2004/12/04 11:28:30”;
char str_a[14];
sprintf(str_a, ”%.4s%.2s%.2s%.2s%.2s%.2s”, date_a, date_a+5, date_a+8, date_a+11, date_a+14, date_a+17);
------------------------
char date_b[20];
char str_b[14] = ”20041122113344”;
sprintf(date_b, ”%.4s/%.2s/%.2s %.2s:%.2s:%.2s”, str_b, str_b+4, str_b+6, str_b+8, str_b+10, str_b+12);
で良いのではないでしょうか。
保証されてます!ありがとうございます!
あ、そうですね。質問の仕方が悪かったです。
時刻文字列中の”/”や”:”や” ”は格納せずに”YYYYmmddhhmmss”と入れたいのです。
また、date timeは諸事情があって使いません。
timeとかを使えればこんなに苦労はしないのですが。。。
すいませんが、再度回答願います。
質問への不備の指摘でもかまいません。