C言語関係掲示板

過去ログ

No767 YYYYMMDDをYYYY年MM月DD日と出力したい

[戻る] [ホームページ]
No.139

YYYYMMDDという風に出力さてているデータをYYYY年MM月DD日と出力したい
投稿者---けんぢ(2003/06/18 23:51:48)


XMLからデータをパースしているのですが、
現在パースして 出力されているのが YYYYMMDDという風になっています。これをYYYY年MM月DD日という風に変換して出力したいのです。
使用する関数として、strcpy, strncpy, strcat strcmpのどれかを使うとか・・・
おしえてください、お願いします。

No.140

Re:YYYYMMDDという風に出力さてているデータをYYYY年MM月DD日と出力したい
投稿者---YuO(2003/06/19 00:39:10)


>現在パースして 出力されているのが YYYYMMDDという風になっています。これをYYYY年MM月DD日という風に変換して出力したいのです。
>使用する関数として、strcpy, strncpy, strcat strcmpのどれかを使うとか・・・

strtolで一旦数値に変換して,計算で年・月・日に分割します。
あとはsprintfで文字列に戻せばよいです。


No.141

Re:YYYYMMDDという風に出力さてているデータをYYYY年MM月DD日と出力したい
投稿者---ともじ(2003/06/19 00:50:52)


こんばんは。

>現在パースして 出力されているのが YYYYMMDDという風になっています。これをYYYY年MM月DD日という風に変換して出力したいのです。
>使用する関数として、strcpy, strncpy, strcat strcmpのどれかを使うとか・・・

sscanfを使ってはどうでしょう。
#include <stdio.h>

int main(void)
{
    char date[] = "20030618";
    char year[10], month[10], day[10];
    
    sscanf(date, "%4s%2s%2s", year, month, day);
    printf("%s年%s月%s日\n", year, month, day);
    
    return 0;
}


No.143

Re:YYYYMMDDという風に出力さてているデータをYYYY年MM月DD日と出力したい
投稿者---かずま(2003/06/19 11:16:24)


> 現在パースして 出力されているのが YYYYMMDDという風になっています。
> これをYYYY年MM月DD日という風に変換して出力したいのです。
> 使用する関数として、strcpy, strncpy, strcat strcmpのどれかを使うとか・・・
#include <stdio.h>

int main(void)
{
    char date[] = "20030619";
    
    printf("%.4s年%.2s月%s日\n", date, date+4, date+6);
    return 0;
}