我试图了解以下代码的作用
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';
}
什么是分隔符?第四行基本上是保存字符串中的最后一个字符吗?
答案 0 :(得分:2)
如果字符串的最后一个字符与delim匹配,那么字符串(* nlpos)中的字符位置将被分配一个零字节,这有效地将C字符串终止于靠近字符串开头的一个位置。
我认为术语chomp在Perl中越来越受欢迎,它经常在逐行处理时修剪终止换行符。
答案 1 :(得分:0)
分隔符是换行符。 然后计算字符串长度并将类型设置为length(size_t将长度格式化为表示大小的ISO定义类型)。 检查字符串长度为零(0)长度,然后返回调用例程,如果为真
答案 2 :(得分:0)
此代码将删除字符串中的分隔符(可以是缓冲区)并在结尾处放置空字符(\0
)。
第四行将最后一个char存储在字符串中,并用空字符替换它。
分隔符是用于在纯文本或区域中指定边界的字符序列。因此它最终会到来。
NULL字符用于C样式字符串,以指示字符串结尾的位置。