[英]What is a delimiter in this chomp function?
我正在嘗試了解以下代碼的作用
void chomp (char* string, char delim) {
size_t len = strlen (string);
if (len == 0) return;
char* nlpos = string + len - 1;
if (*nlpos == delim) *nlpos = '\0';
}
什么是定界符? 第四行是否基本上將字符串中的最后一個字符保存?
如果字符串的最后一個字符與delim相匹配,則將在字符串(* nlpos)中的該字符位置分配一個零字節,這實際上將C字符串終止於更靠近字符串開頭的位置。
我認為 chomp一詞在Perl中很流行,當逐行處理時,通常會剪掉終止的換行符。
分隔符是換行符。 然后計算字符串的長度並將其類型設置為長度(size_t將長度格式化為表示大小的ISO定義類型)。 檢查字符串的長度是否為零(0)長度,如果為true,則返回到調用例程
此代碼將切掉字符串中的定界符(可以是緩沖區),並在最后放置空字符( \\0
)。 第四行將最后一個字符存儲在字符串中,並將其替換為空字符。 分隔符是用於在純文本或區域中指定邊界的字符序列。 因此,它將在最后。 NULL字符用於C樣式字符串中,以指示字符串的結尾在哪里。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.