2008/05/18(Sun) 22:45:59 編集(投稿者)
> 文字列の一部を取り出す a = a.Substring(1, 2); を追加しますとerrorになります。
>
> #include<stdio.h>
> main(void){
> char a[]="hello\0";
> a = a.Substring(1, 2); // error C2228: '.Substring' : 左側がクラス、構造体、共用体ではありません。
> printf("%s\n",a);
> return 0;
> }
>
> errorの原因として考えられますことでご指導を願えればと願います。
メソッドSubstringはSystem::Stringのメソッドであり、char a[] には適用できません。
↓ここいらへんが無難なとこかな。
#include <cstdio>
#include <cstring>
#include <string>
int main() {
char a[]="hello";
std::strcpy(a,std::string(a).substr(1,2).c_str());
printf("%s\n",a);
return 0;
}
出水さんの strncpy が簡単で明快かなー
System::String::Substringの代わりになるもの、ってことで string::substr を使ってみました。