c - 显示指针减法

标签 c pointers char sequence

好吧,假设我有一个序列“abcdefg”,我有

char* s = strdup("abcdefg");
char* p;
char* q;
p = strchr(s, 'c');// -> cdefg
q = strchr(p, 'd');// -> defg

我想显示 s - p 基本上是 abcdefg - cdefg = ab,我可以使用指针算法来实现吗?

最佳答案

你可以这样做:

printf("%.*s", (int)(p - s), s);

这会打印出 s最大长度为 p - s这是 s 中的字符数至 p .

关于c - 显示指针减法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53921846/

相关文章:

c - 是否可以在 C 中为 uint64_t 指针添加下标?

c - 结构操作需要一些解释

c++ - 取消IoEx : Function pointer typedef

c++ - 为 char* 动态分配内存时出错

python - 如何正确测试模式中的有效字符,可能使用字符数组或其他一些方法(正则表达式)

c++ - 将十六进制键值转换为十进制键值

C、Pthreads - 如何重新执行指定的函数或start_routine

将 char 数组的一个元素转换为 int

c - 我如何告诉套接字在不关闭它的情况下丢弃所有未决数据?

java - 将位修改代码从 C 移植到 Java