c - 显示指针减法
问题描述
好的,假设我有一个序列“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
。
推荐阅读
- java - 读取 XMLStreamReader 时出错:序言中出现意外字符“N”(代码 78);预期'<'
- mysql - mySQL 是否在删除时使用索引?
- android - Android 编译中的颜色无效。如何修复 .9.png
- heroku - 尝试使用 heroku 按钮部署时找不到存档 URL
- android - 从 RelativeLayout 扩展的自定义复合视图。子视图的定位不正确
- javascript - 怀疑是json数据还是JavaScript对象
- json - responseType:“json”标头导致错误:“对象”类型上不存在属性“responseStatus”
- android - Android 地图 UI 上的 ArcGis 使用
- twitter - 如何将 Twitter 卡片图像添加到在 blogdown 中创建的帖子
- ruby-on-rails - 宝石方法在 Grape Api 中不可用