c - 这个 chomp 函数中的分隔符是什么?

标签 c string

我试图理解以下代码的作用

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 中变得流行,它经常在逐行处理时修剪掉终止换行符。

关于c - 这个 chomp 函数中的分隔符是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39780640/

相关文章:

c - 我如何将一个函数内的int指针传递给另一个函数,并在那里进行操作?

c - C 中使用动态字符串的文件 I/O

C 中用指针改变字符串的值

c - ANSI C - 如何逐字读取标准输入?

C# 字符串替换,不起作用

Python字符串列表2D

javascript - js中ascii转十六进制

string - AppleScript:字符串中子字符串的索引

c - 数组占用的内存空间

Android goldfish 内核 IOCTL 系统调用钩子(Hook) 内核 panic