如何在C中获取字符串的字符索引?

时间:2013-05-10 17:01:18

标签: c

如何获取当前字符索引(在C中)?

char *s = "abcdefghijklmopqrstuvwxyz";
*s++;
*s++;
*s++;
printf("%c\n", *s);    // print character 'd'
printf("%d\n", s - *s);    // should print 3, but not working

我希望得到index(3),但是如何以编程方式编写它?

2 个答案:

答案 0 :(得分:3)

char *s = "abcdefghijklmopqrstuvwxyz";
char *t = s;
*s++;
*s++;
*s++;
printf("%c\n", *s);    // print character 'd'
printf("%d\n", s - t);    // print 3

应该这样做。

答案 1 :(得分:1)

您需要将另一个指针(不是s指针)移动到第三个索引或任何索引。然后你可以做指针减法,其中差异是指针之间的字节元素数。

const char s[] = "asdf";
const char *s2 = s + 2;
printf( "%d", s2 - s ); // 2