C言語で文字列から文字列ポインタを取得する方法


  1. 文字列リテラルからポインタを取得する場合: 文字列リテラルは、コード内で直接指定された文字列です。例えば、以下のようなコードで文字列リテラルからポインタを取得できます。

    const char* str = "Hello, World!";

    上記のコードでは、文字列リテラル "Hello, World!" からポインタを取得し、それを str 変数に格納しています。

  2. 文字列配列からポインタを取得する場合: 文字列を配列として表現している場合は、その配列の名前そのものが文字列へのポインタとなります。例えば、以下のようなコードで文字列配列からポインタを取得できます。

    char str[] = "Hello, World!";
    char* ptr = str;

    上記のコードでは、文字列配列 str からポインタを取得し、それを ptr 変数に格納しています。

  3. 文字列ポインタを関数の戻り値として取得する場合: 関数内で動的に文字列を作成し、そのポインタを戻り値として返すこともできます。以下は、その一例です。

    #include <stdio.h>
    #include <stdlib.h>
    char* createString() {
       char* str = (char*)malloc(10 * sizeof(char));
       sprintf(str, "Hello");
       return str;
    }
    int main() {
       char* ptr = createString();
       printf("%s", ptr);
       free(ptr);
       return 0;
    }

    上記のコードでは、createString 関数内で動的に文字列を作成し、そのポインタを戻り値として返しています。main 関数でそのポインタを受け取り、使用後に free 関数で解放しています。

これらはいくつかの基本的な方法ですが、文字列からポインタを取得するための一般的な手法です。具体的なニーズや使用状況に応じて、適切な方法を選択してください。