首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >字符串值的strchr索引

字符串值的strchr索引
EN

Stack Overflow用户
提问于 2015-05-27 14:28:54
回答 3查看 434关注 0票数 1
代码语言:javascript
复制
char a[20]="this is";
cout<<strchr (a,'t')-a;

这个(a,'t')-a“如何显示字母t第一次出现的索引?它是如何工作的?有人说编译器做了ASCII字符的和,然后减去确定的字符。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-05-27 14:50:34

x = strchr (a, 't')返回指向C字符串a中第一个字符t的指针。在您的示例中,这恰好与a中第一个字符的地址相同。这也是变量a所指向的。

通过减去x - a,您可以减去两个地址,这将给出't'a中的索引。它是零,因为xa是相等的。和ASCII没什么关系。

票数 0
EN

Stack Overflow用户

发布于 2015-05-27 14:44:01

这纯粹是指针算法。

strchr (a,'t')返回字符串a中指向字符't'的指针。a保存字符串的地址。

strchr (a,'t')- a返回字符串a中的t索引。

示例:a有地址100的h地址在一个将为101个,

因此,您将得到字符h的索引1。

票数 0
EN

Stack Overflow用户

发布于 2015-05-27 14:53:45

strchr返回指向字符串中第一个已找到字符的指针。

代码语言:javascript
复制
char str[] = "Some string with spaces";
char* ptr;
ptr = strchr(str, ' ');
while(ptr != 0)
{
    printf("Space on %d. place\n", ptr - str);
    ptr = strchr(ptr + 1, ' ');
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30485483

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档