😸

[C] strdup 関数

に公開

機能

文字列を複製(コピー)し、新たなメモリ領域に格納して返す関数[1]

使用例

Hello\n と表示する

\n は改行を表す エスケープシーケンス[2]

コード

char* s = strdup("Hello\n");
printf("%s", s);
free(s);
全文
#include <stdio.h>
#include <string.h> // strdup
#include <stdlib.h> // free

void main() {
    char* s = strdup("Hello\n");
    printf("%s", s);
    free(s);
}

実行結果

Hello

world!\n を変数から表示する

コード

const char* src = "world!\n";
char* s = strdup(src);
printf("%s", s);
free(s);
全文
#include <stdio.h>
#include <string.h>
#include <stdlib.h>

void main() {
    const char* src = "world!\n";
    char* s = strdup(src);
    printf("%s", s);
    free(s);
}

実行結果

world!
脚注
  1. strdupはPOSIX標準の関数で、引数で与えた文字列と同内容の新しい文字列へのポインタを返す。C言語標準ライブラリ(C89/C99/ANSI)には含まれない。 ↩︎

  2. 改行やタブなど、画面に表示されない制御文字のこと。 ↩︎

Discussion