C++ char değişkenlerini yer değiştirme

emrebalki

Öğrenci
Katılım
22 Aralık 2013
Mesajlar
4
Reaksiyon puanı
0
Puanları
0
öncelikle yardım edendüşünen arkadaşlar için şimdiden teşekkürler
aşada yazdığım bi kod var beraber inceleyelim


#include <iostream>
#include <string.h>
using namespace std;
double miktar[12];
int sayac;
struct AYLAR{
char *ay;
};
void main()
{
AYLAR dizi[13];
dizi[0].ay="ocak";
dizi[1].ay="subat";
dizi[2].ay="mart";
dizi[3].ay="nisan";
dizi[4].ay="mayis";
dizi[5].ay="haziran";
dizi[6].ay="temmuz";
dizi[7].ay="agustos";
dizi[8].ay="eylul";
dizi[9].ay="ekim";
dizi[10].ay="kasim";
dizi[11].ay="aralik";

for (sayac=0;sayac<12;sayac++)
{
cout<<dizi[sayac].ay<<endl;
}
system("pause");
}

bu program çalıştırıldığında sorunsuz çalışıyor fakat ben ekranda sıralı çıkan ayların yerini değiştirmek istiyorum mesela

ocak
subat
mart
...

bunu yerine

subat
ocak
mart
...

yazmasını istiyorum yani ocakla subat yer değiştirsin strcpy denedim fakat başarılı olamadım bilen varsa yardımı çok işime yarar :)
 

Kadima

Rektör
Katılım
17 Mart 2011
Mesajlar
11,959
Reaksiyon puanı
841
Puanları
113
dizi[gecici].ay=dizi[2].ay
dizi[2].ay=dizi[1].ay
dizi[1].ay=dizi[gecici].ay

düz mantık
:mrgreen:
 

cosmosfb

Asistan
Katılım
20 Haziran 2011
Mesajlar
101
Reaksiyon puanı
0
Puanları
0
char temp;
strcpy (temp , dizi[0].ay);
strcpy (dizi[0].ay , dizi[2].ay);
strcpy (dizi[2].ay , temp);

Yer değiştirme işleminde olası bir veri kaybı yaşamamak için başka bir değişken ("temp") kullanman gerekiyor.
 

emrebalki

Öğrenci
Katılım
22 Aralık 2013
Mesajlar
4
Reaksiyon puanı
0
Puanları
0
bunlarıda denemiştim malisef hiç biri olmuyor
 

sdmh

Profesör
Katılım
22 Ağustos 2008
Mesajlar
1,108
Reaksiyon puanı
14
Puanları
38
dizi[0].ay="ocak"; ve diğerleri bana mantıklı gelmedi. Bildiğim kadarıyla string direkt atanmıyordu. Başta Strcpy ile atamaları dene istersen.

Ayrıca char *ay; yerine uzunluğu sabit değişken tanımlayıp birde öyle dene istersen.
 

emrebalki

Öğrenci
Katılım
22 Aralık 2013
Mesajlar
4
Reaksiyon puanı
0
Puanları
0
bu yazdığım programın küçük bir kısmı aslında o şekilde tanımladığım zaman programın gidişatına uyymuyor bu yüzden bunun üzerinden değişim yapmalıyım ama strcpy ile denemediğim şey kalmadığını düşünğyorum yinede çok teşekkür ederimm :)
 
Üst