プロジェクトでsscanfを使用して、ソース バッファーからターゲット バッファーに文字列をコピーしています。例えば:
char* target;
target = (char*)malloc(100 * sizeof(char));
char* source = "Hello World";
sscanf(source, "%[^\t\n]", target); // trying to copy "Hello World" into target.
printf("%s\n", target);//this will print "Hello World".
しかし、このようなコーディング スタイルは受け入れられません。私のマネージャーが私に求めていることは、次のようなものです。
sscanf(source, "%11[^\t\n]", target); // NOTE: I've written "%11". here, 11 == length of hello world.
つまり、フォーマット指定子も提供してほしいということです。(この場合は %11)。
しかし、問題は、ソースがさまざまな長さになる可能性があり、さまざまな長さの文字列ごとに正しい書式指定子を記述する方法がわからないことです。