PDA

View Full Version : مبتدی: چگونگي مقداردهي به آرايه سه بعدي رشته اي



hessam abjam
پنج شنبه 17 فروردین 1391, 02:05 صبح
سلام
يك آرايه سه بعدي را درنظر بگيريد به اين شكل : name[5][2][20
كه 5 تعداد سطرها كه تعداد افراد است و 2 تعداد ستونها كه براي نام و نام خانوادگي و 20 حداكثر تعداد كاراكتر ذر نام يا نام خانوادگي است
چگونه مي توان درون اين آرايه رشته وارد كرد ؟


با تشكر

shahmohammadi
پنج شنبه 17 فروردین 1391, 12:15 عصر
مثلا اگر بخواهيد براي نفر سوم (انديسش 2 ميشه) اسم و فاميل رو وارد كنيد:
#include <iostream>
#include <conio.h>

using namespace std;

int main()
{
char name[5][2][20];
cout<< "enterthe name and family of the 3rd man:\n";
cout<<"name: ";
cin>>name[2][0];
cout<<"family: ";
cin>>name[2][1];
cout<<"name: "<<name[2][0]<<" and family: "<<name[2][1];
getch();
return 0;
}

hessam abjam
پنج شنبه 17 فروردین 1391, 20:46 عصر
مثلا اگر بخواهيد براي نفر سوم (انديسش 2 ميشه) اسم و فاميل رو وارد كنيد:
#include <iostream>
#include <conio.h>

using namespace std;

int main()
{
char name[5][2][20];
cout<< "enterthe name and family of the 3rd man:\n";
cout<<"name: ";
cin>>name[2][0];
cout<<"family: ";
cin>>name[2][1];
cout<<"name: "<<name[2][0]<<" and family: "<<name[2][1];
getch();
return 0;
}


ممنون از کمکتون. اگر بخواهیم خودمون توی کد مستقیم مقدار بدیم چطور ؟ مثلا
name[0][2] = "Ali"
این مقداردهی مستقیم درسته؟

shahmohammadi
پنج شنبه 17 فروردین 1391, 21:11 عصر
اينكار رو مانند رشته هاي ديگر انجام مي ديم:
strcpy(name[2][0],"Ali");
اولش هم بايد sring.h رو اينكلود كنيم.

علی اکبر
پنج شنبه 17 فروردین 1391, 23:20 عصر
در متن سئوال گفته شده ارایه سه بعدی است و20 جهت تعداد حروف
اما هنگامی که ازایه پر میشه اصلا صحبتی از این بعد سوم نیست؟
چرا؟
چگونه این قسمت باید پر بشه؟

shahmohammadi
جمعه 18 فروردین 1391, 00:16 صبح
بعد سوم شامل "مقدار رشته" ها هست. اگر مي خواستيم كه به كاراكتر هاي داخل رشته دسترسي پيدا كنيم بعد سوم رو هم مي نوشتيم. در رشته هاي معمولي هم همين طور بود، وقتي با خود رشته كار داشتيم اسمشو مي نوشتيم و وقتي كه با كاراكتر هاش، انديسشو مي نوشتيم:
#include <iostream>
#include <conio.h>

using namespace std;

int main()
{
char s1[20]; //يك رشته
cin>>s1;

char s2[2][20];//آرايه اي از رشته ها شامل دو رشته
cin>>s2[0]>>s2[1];

char s3[2][3][20];//آرايه اي دوبعدي از رشته ها شامل شش رشته
cin>>s3[1][2];
return 0;
}

در اين مثال s1 يك رشته هست.

s2[0] و s2[1] هر كدوم يك رشته اند.

s3[0][0] و s[0][1] و... s[1][2] همشون رشته هايي با اندازه 20 كاراكترند.

در مثالي هم كه در پست 4 زدم:
name[2][0][0]=='A';
name[2][0][1]=='l';
name[2][0][2]=='i';
name[2][0][3]=='\0'