現在の文字インデックスを取得する方法 (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) を取得する予定ですが、プログラムでコーディングするにはどうすればよいですか?
現在の文字インデックスを取得する方法 (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) を取得する予定ですが、プログラムでコーディングするにはどうすればよいですか?
char *s = "abcdefghijklmopqrstuvwxyz";
char *t = s;
*s++;
*s++;
*s++;
printf("%c\n", *s); // print character 'd'
printf("%d\n", s - t); // print 3
するべきです。
s
別のポインター (ポインターではない) を 3 番目のインデックス、または任意のインデックスに移動する必要があります。次に、違いがポインター間のバイト要素の数であるポインター減算を行うことができます。
const char s[] = "asdf";
const char *s2 = s + 2;
printf( "%d", s2 - s ); // 2