-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別のポインター (ポインターではない) を 3 番目のインデックス、または任意のインデックスに移動する必要があります。次に、違いがポインター間のバイト要素の数であるポインター減算を行うことができます。

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