- ベストアンサー
PHPのsubstr関数をC++とObjective-C++に置き換え
PHPのsubstr関数をC++とObjective-C++に置き換える方法 ・PHP $s = "abcdefg"; $t = substr($s, 3, 2); というPHPのソースから C++と Objective-C++に変更したいのですが どう記述すればよいのでしょうか? ・C++ char s[] = "abcdefg"; ??? ・Objective-C++ iOSは3.2です。 NSString *s = @"abcdefg"; ???
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
> strncpyは最後にNULLが付加されると思っていたのですが、 されませんよ(文字列がサイズより大きい場合) > Objective-C++ではmemsetや敢えてNULLを付加しないと > 文字列表示で、おかしく表示されます Objective-C++ というものを知らないので、何とも言えません。
その他の回答 (4)
- capy2009
- ベストアンサー率72% (337/465)
> Cの場合 strncpy( s2, s + 2, 2 ); となりますかね。 Objective-C の方も substringWithRange:NSMakeRange(2, 2) かもしれないので、その辺はご自分でチェックしてください。
- capy2009
- ベストアンサー率72% (337/465)
書き間違いがありました。 C++ なら string str( "abcdefg" ); string str2 = str.substr( 3, 2 ); です。
補足
具体的な回答ありがとうございます。 すみません、私のはやとちりで、C++でなくCの場合をお聞きしたかったのですが、 C++の方法をお聞きしたので Cから char s[] = "abcdefg";を C++に置き換える方法でもかまいませんので教えていただけますか?
- capy2009
- ベストアンサー率72% (337/465)
C++ なら string str( "abcdefg" ); str.substr( 3, 2 ); Objective-C なら NSString *str = [[NSString alloc] init]; str = @"abcdefg"; NSString *str2 = [str substringWithRange:NSMakeRange(3, 2)];
- mickymac
- ベストアンサー率37% (90/240)
アイデアだけですが、外部シェルスクリプトを呼び出す、ではだめなんでしょうか。
お礼
うまくいきました。 ありがとうございました。 ところで、strncpyは最後にNULLが付加されると思っていたのですが、 Objective-C++ではmemsetや敢えてNULLを付加しないと 文字列表示で、おかしく表示されます。 これはgccの仕様?でしょうか