, sadece bundan E
almak istiyorsaBir dizenin nth karakterini nasıl alabilirim? Bir dize var
char* str = "HELLO"
bunu nasıl yapardınız?
, sadece bundan E
almak istiyorsaBir dizenin nth karakterini nasıl alabilirim? Bir dize var
char* str = "HELLO"
bunu nasıl yapardınız?
Sen yapacağını: hatta
char c = str[1];
Veya:
char c = "Hello"[1];
düzenleme: "E" bulmak için güncellendi.
char* str = "HELLO";
char c = str[1];
"H" C diziler ve dizeleri 0 ziyade 1'de indeksleme başlar unutmayın, bu yüzden, "E" str[0]
olduğunu str[1]
olduğunu ilk "L" str[2]
ve böylece açık.
Dizi notasyonu ve işaretçi aritmetiği (bu TÜM durumlar için geçerli değildir ama oraya gidinceye kadar, sen davaları kendinizi bulacaksınız) C/C++ içinde birbirinin yerine kullanılabilir. böylece
char char_E = str[1];
char char_L1 = str[2];
char char_O = str[4];
... ve: str
bir işaretçi olsa, bunu kullanabilirsiniz Yani bu bir dizi şöyle sanki. Yapabildiğiniz şey, imlecin değerine, işaretçinin ikinci karakterini gösterecek olan str
karakterine "ekle" 1 olacaktır. Sonra basitçe yapabilirsiniz:
str = str + 1; // makes it point to 'E' now
char myChar = *str;
umarım bu yardımcı olur.
#include <iostream>
#include <string>
using namespace std;
int main()
{string a="HELLO";char b=a[1];
cout<<b;
return 0;}
Bu "E" alacak? – Thanatos
hayır, ama bunu anlamak ve bu kendim için çalışmak yapabilirsiniz – Aspyn
Eh, fındık, ben oynanırsa. Bunun yerine "O" için gidiyordum. Yine de cevap hala geçerli. Böyle bir dize gayet erişen, ancak bunu değiştirmeye çalışıyorum C' 'yasadışı Bilginiz olsun –