PDA

View Full Version : سوال: ارسال ارايه ورشته به تابع با اشاره گر؟



one hacker alone
شنبه 24 دی 1390, 03:52 صبح
با ياد خدا
با سلام
من در برنامه اي بايد به تعداد زياد رشته اي را تبديل به عدد كنم حال ميخواستم اين كار را با تابع انجام بدم كه هر بار ان را فراخواني كنم يعني CHAR A[20]
INT B[20]
من با تبديل رشته به كد مشكل ندارم اما نميدانم چگونه انها را با اشاره گر به تابع بفرستم تا در يكديگر كپي شوند
CIN>>A
تابع
FOR……
B[I]=A[I]
مشكل من با ارسال ارايه و رشته با اشاره گر به تابع است ممنون ميشوم راهنمايي كنيد

b.saminjad
شنبه 24 دی 1390, 22:54 عصر
سلام



func(char *x)
{
...
....
}
char *y= new char[100];
func(y);
or
char y[100];
func(y);

one hacker alone
شنبه 24 دی 1390, 23:29 عصر
نه من ميخوام رشته رو تو يه ارايه بريزم
اما رشته دست اخر چاپ نميشه



#include <iostream>
void tr(char *,int *);
using namespace std;

int main()
{
char a[10];
int b[10];
cout<<"enter a string:";
cin>>a;
//cout<<b[0];
tr(a,b);
return 0;
}
void tr(char *str,int *num)
{
cout<<*str;
int i=0;
while(*str!='\0')
{
*(num+i)=*(str+i);
i++;
}
for(;*str!='\0';str++)
cout<<endl<<*str;
}

shahmohammadi
یک شنبه 25 دی 1390, 11:54 صبح
با سلام.
در این تابع شما حلقه اول رو طوری تعریف کردین که تا ابد ادامه پیدا کنه و به همین دلیل دستورات بعدی که چاپ رشته هست اجرا نمی شه.
درست برنامه رو اینجا می نویسم:
#include <conio.h>
#include <iostream>
void tr(char *,int *);
using namespace std;

int main()
{
char a[10];
int b[10];
cout<<"enter a string:";
cin>>a;
//cout<<b[0];
tr(a,b);
getch();
return 0;
}
void tr(char *str,int *num)
{
cout<<str<<endl;
int i=0;
while(str[i]!='\0')
{
num[i]=str[i]-48;
i++;
}
num[i]=10;

for(i=0;num[i]!=10;i++)
cout<<num[i];
}