文字列から特定の部分の文字以外の文字を取り出す方法が知りたいです。


提示コードのconst char*型とstring型で **.vertの部分を消して
"Basic"だけ別の変数に取り出し**表示させたいのですがどうすればいいのでしょうか？
調べましたが色々なやり方が出て来ますが自分のやりたい事とはちょっと違うため質問しました。

[code]

    #include <iostream>
    #include <string>
    
    int main()
    {
        std::string str = "Basic.vert";
        const char* ch = "Basic.vert";
    
        printf("%s\n",str);
    
        return 0;
    }
    
[/code]




[string::find_last_of](http://www.cplusplus.com/reference/string/string/find_last_of/)
を使う方法など。

[code]

    #include <iostream>
    #include <string>
    
    int main()
    {
      std::string str = "Basic.vert";
    
      printf("%s\n", str.substr(0, str.find_last_of(".")).c_str());
    
      return 0;
    }
    
[/code]




表示するだけなら新しい `std::string` を生成する必要などなくて、後ろ５文字を表示しないだけでよくて

[code]

    #include <stdio.h>
    #include <string.h>
    int main() {
        const char message[]="Basic.vert";
        printf("%.*s\n", strlen(message)-5, message);
    }
    
[/code]

でも十分っス（あららかぶった）

