-2

如何获取当前字符索引(在 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

我希望得到索引(3),但是如何以编程方式对其进行编码?

4

2 回答 2

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

应该这样做。

于 2013-05-10T17:03:01.777 回答
1

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

const char s[] = "asdf";
const char *s2 = s + 2;
printf( "%d", s2 - s ); // 2
于 2013-05-10T17:03:36.397 回答