char[]
をcとすると、その配列から出力される出力の長さをprintf
に指定したいのですが、どのようにすれば便利でしょうか?printfに出力するchar []の長さを指定する方法
例えば、I 8を位置決めする(0からインデックス付け)位置3の部分を印刷したい:
printf("%s", char_array+3..char_array+8)
I []は、所望の長さの一時的な文字を作ることができるが、それは非常にありません便利。それとも私が
char* substring(const char* str, size_t begin, size_t len) {
if (str == 0 || strlen(str) == 0 || strlen(str) < begin || strlen(str) < (begin + len))
return 0;
return strndup(str + begin, len);
}
SUBSTRING関数を書くことができしかし、私は
printf("%s", substring(s, 3, 5));
呼び出す場合、私は、メモリリークが発生します怖いです。
これを行う最善の方法についてどう思いますか?
はい、メモリリークが発生します。 – Mysticial
'str [n] dup'を使用することをお勧めします。なぜなら、' malloc'をどこでも見ることなくメモリリークを作り出すという狡猾な性質を持っているからです。 –
@Seth 'malloc'と' strcpy'を好むでしょうか?より良いストリングをサポートする言語を選択する方が良いでしょう。 –