簡體   English   中英

此chomp函數中的分隔符是什么?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM