C言語関係掲示板

過去ログ

No716 "20030724120000" から "0724"を取り出す

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

文字列の1部を取得
投稿者---lovin(2003/07/24 13:08:24)


はじめまして。C勉強中のものです。
いきなりですが、掲題について質問です。

char型の変数 ymd に文字列 "20030724120000" が入っているとき
ymdから "0724" だけを取り出すにはどのようにすればよいのでしょうか?

ご教授お願い致します。


No.8615

Re:文字列の1部を取得
投稿者---nop(2003/07/24 13:13:29)


>char型の変数 ymd に文字列 "20030724120000" が入っているとき
>ymdから "0724" だけを取り出すにはどのようにすればよいのでしょうか?

#include    <stdio.h>
#include    <string.h>


int main( void )
{
    /* ***** 変数定義 ***** */
    char    str[] = "20030724120000";
    char    buf[256] = {'\0'};

    /* ***** str の 5 文字目から 4 文字を抜き出し buf に設定 ***** */
    strncpy( buf, str+4, 4 );

    /* ***** 抜き出した文字列の表示 ***** */
    printf( "%s\n", buf );

    return 0;
}


No.8616

Re:文字列の1部を取得
投稿者---物見遊山(2003/07/24 13:20:13)


こんなんしか思いつかん。
#include <stdio.h>

main(void)
{
    const char * const ymd = "20030724120000";

    printf("%.4s\n", ymd + 4);
    return 0;
}


No.8617

Re:文字列の1部を取得
投稿者---物見遊山(2003/07/24 13:25:47)


蛇足だけど。
#include <stdio.h>

int
main(void)
{
    const char * const ymd = "20030724120000";
    char md[5] = {'\0',};

    snprintf(md, sizeof md, "%.4s", ymd + 4);
    puts(md);
    return 0;
}


No.8618

Re:文字列の1部を取得
投稿者---lovin(2003/07/24 13:36:46)


nopさん、物見遊山さん
早速の回答ありがとうございました。

理解できました。

また不明点があるときは
投稿させて頂くと思いますので
よろしくお願い致します。