【发布时间】:2020-12-11 03:45:35
【问题描述】:
在尝试找出如何比较字符串的结尾时,很多答案建议:
(strncmp(string1 + length_string1 - length_string2, string2, length_string2)
很好用,我了解strncmp 的基本实现,但我很难理解以下表达式的工作原理:
string1 + length_string1 - length_string2
您如何能够在strncmp 内部使用+ 运算符与const char* (string1) 和int (或size_t) (length_string1) 但是当我编译关注
int n = string1 + length_string1 - length_string2;
我得到一个错误?该错误是有道理的(当然,不能使用字符串初始化 int)但是在 strncmp 内部执行此操作的能力让我回避了。
在某些函数中使用时,将n 值添加到string1 会如何删除第一个n 字符?例如:
在试验printf("%s", s + 3); 时,const char* s = "Hello World"; 打印了lo World,为什么会发生这种情况?
【问题讨论】:
标签: arrays c string operators c-strings