たとえば、私はこれを持っています
char *buff = "this is a test string";
そして"test"
を取得したいです。どうやってやるの?
char subbuff[5];
memcpy( subbuff, &buff[10], 4 );
subbuff[4] = '\0';
仕事が完了しました:)
部分文字列の位置と長さがわかっているとします。
char *buff = "this is a test string";
printf("%.*s", 4, buff + 10);
サブストリングを別のメモリー宛先にコピーしても同じことができますが、既にメモリー内にあるのでそれは合理的ではありません。
これは、ポインタを使用して不要なコピーを回避する良い例です。
<cstring>
からchar* strncpy(char* dest, char* src, int n)
を使用してください。あなたの場合は、次のコードを使用する必要があります。
char* substr = malloc(4);
strncpy(substr, buff+10, 4);
strncpy
関数 に関する詳しい説明はこちら 。
strstr
を使うことができます。コード例 はこちら
返される結果はnullで終了していないことに注意してください。
<string.h>
からstrstr()
を使うことができます