我不一定要這樣做,但我很好奇。在C/C++中是否有一種方法可以定義字符串終止符其他比空終止符?例如,是否有可能寫這個,有沒有方法來定義「替代」字符串終止符(除了空終止符, 0)
char* str = "123456|ABCDEF";
char* foo = str;
char* bar = strstr(str, "|") + 1;
// do something here to define '|' as a terminator
std::cout << foo << std::endl;
std::cout << bar << std::endl;
// undo pipe-as-terminator definition
,並得到輸出,
123456
ABCDEF
?
如果不能,那麼有沒有任何的方式來獲得指針到緩衝區,的部分,而分配/複印內存,沒有修改緩衝區,即覆蓋|
s到\0
小號?
沒有。儘管在某些情況下它可能會很好,但零/空/零/任何的概念都深深嵌入到各處的邏輯來改變。 –
不會'std :: cout << bar << std :: endl;'是UB,因爲它沒有終止? –
@LuchianGrigore:大聲笑...不是真的,如果你讀的標題:*除了空終止符*。 –