PDA

View Full Version : سوال: استفاده از string در ++C



mahmoud.mirghafari
پنج شنبه 23 آذر 1391, 01:06 صبح
سلام

کسی میتونه کمک کنه.....:

این قطعه کد قراره حروف n ام 4 تا کلمه (a) رو بگیره و باهاش یه کلمه جدید (word) بسازه.وقتی برنامه اجرا میشه کلمه word رو به صورت تهی چاپ میکنه درصورتی که حرف
n ام کلمه
word رو به راحتی چاپ میکنه!!!!
به نظرتون مشکل چیه؟؟؟؟؟

اینم کد:



#include<stdio.h>
#include<conio.h>
#include<iostream>
#include<string.h>
#include<conio.h>

using namespace std;

main()
{
string word,a[4];
a[0]="abcd";
a[1]="efgh";
a[2]="ijkl";
a[3]="mnoz";

int h=0;

for(int k=0 ; k<4 ; k++)
word[k]=a[k][h];

cout<<"\nword = "<<word;
cout<<"\nword[1] = "<<word[1];

getch();
}

shmokarami
پنج شنبه 23 آذر 1391, 01:18 صبح
فکر کنم به جای دستور

cout<<"\nword = "<<word;
باید این دستود نوشته شه:


for(int k=0 ; k<4 ; k++) cout <<word[k];

omidshaman
پنج شنبه 23 آذر 1391, 14:29 عصر
نه این کد بالکل اشتباهه با عوض کردن اون دو تا چیزی درست نمیشه فقط سر بزنامه رو کلاه میزاری ! یعنی این جا ممکنه جواب بده ولی تو برنامه های بزرگتر چون اون خونه های حافظه برای string گرفته نشدن ممکنه هر لحظه مقدارشون عوض بشه!
شما یک string word با سایز اولیه 0 داری پس نمی تونی همین جوری بیای تو خونه اول یک چیزیو تایپ کنی باید سایزشو اول افزایش بدی
2_از این getch() هم استفاده نکن


#include<iostream>
#include<string>
using namespace std;

int main()
{
string word,a[4];
a[0]="abcd";
a[1]="efgh";
a[2]="ijkl";
a[3]="mnoz";

int h=0;

for(int k=0 ; k<4 ; k++)
{
word.resize(k+1);
word[k]=a[k][h];
}

cout<<"\nword = "<<word;

cin.get();
}

H_G_G_I
پنج شنبه 23 آذر 1391, 14:31 عصر
بخاطر اینکه مقدار دهی نکردیش !

string word = "0000";