首页 > 解决方案 > 显示指针减法

问题描述

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

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

我想s - p基本上显示 abcdefg - cdefg = ab,我可以使用指针算术来做到这一点吗?

标签: cpointerscharsequence

解决方案


你可以做:

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

这打印s的最大长度p - s是从s到的字符数p


推荐阅读