اشكال در مورد مقلوب یک رشته و اشاره گر ها
سلام دوستان
دو تا سوال داشتم :
1. من ميخوام يه رشته رو معكوس چاپ كنم اما در تابع مشكل ميده
اينم كد برنامه
#include <iostream.h>
void maks(char []);
void main()
{
char s1[11];
cout<<"s1 : ";
cin>>s1[10];
maks(m);
//*********maks************
void(char m[])
{
int i;
char m[10];
for(i=0;i<m[i];i++)
{
cout<<m[i];
}
}
2. تابعي بنويسيد كه يك اشاره گر از نوع صحيح و عدد صحيح n را به عنوان پارامتر پديرفته حافظه اي براي n عدد صحيح تخصيص بده و ادرسشو به برنام برگردونه اما كد جواب نميده
ممنون ميشم كمكم كنيد
اينم كدش
#include <iostream.h>
#include <stdlib.h>
long memory();
int main()
{
long n;
cin>>n;
memory(a);
return 0;
}
//********memory*************
long memory(long a)
{
int *fp;
fp=new int;
if(!fp)
{
cout<<"allocation failure"
exit(1);
}
fp=&a
retrun fp;
}
نقل قول: اشكال در مورد مقلوب یک رشته و اشاره گر ها
این هم میشه . برای هر طولی . یه کم راحت تر :
#include <string>
#include <iostream>
using namespace std;
string reverse( string a )
{
string temp;
temp.resize( a.length() );
for( size_t i = 0; i < a.length(); i++ )
temp[ a.length() - 1 - i ] = a[ i ];
return temp;
}
int main()
{
string a;
getline( cin, a );
cout << reverse( a );
return 0;
}
نقل قول: اشكال در مورد مقلوب یک رشته و اشاره گر ها
سلام دوستان
مربوط به سوال دوم
من اين كد رو به اين صورت تغيير دادم اما در exit اين error رو ميده
statement missing in function memory(long)
#include <iostream.h>
#include <stdlib.h>
long* memory(long);
long main()
{
long n;
cin>>n;
memory(n);
return 0;
}
//********memory*************
long* memory(long a)
{
long *fp;
fp=new long(a);
if(!fp)
{
cout<<"allocation failure"
exit(1);
}
return fp;
}
و چرا * در جلوي long گذاشتين
long* memory(long);
نقل قول: اشكال در مورد مقلوب یک رشته و اشاره گر ها
نقل قول:
نوشته شده توسط
karim orooji
سلام دوستان
مربوط به سوال دوم
من اين كد رو به اين صورت تغيير دادم اما در exit اين error رو ميده
statement missing in function memory(long)
برای اینکه بعد از گیومه بسته دستور cout علامت ; رو نداشتین .
نقل قول:
و چرا * در جلوي long گذاشتين
long* memory(long);
اگه یه تابع قراره یه آدرس برگردونه باید * هم گذاشته بشه . چون یه متغیر معمولی نمی تونه آدرس نگه داره . اشاره گر می تونه این کارو بکنه . برای همین گفتیم که این تابع یه اشاره گر به long برگردونه
نقل قول: اشكال در مورد مقلوب یک رشته و اشاره گر ها
دوست عزيز
بهتر نيست به اين صورت بنويسيم
long memory (*long)
ممنون از راهنمايي اما چرا برنامه خروجي نداره
ميخوام با وارد كردن يك عدد ادرس اون خونه رو نمايش يده
نقل قول: اشكال در مورد مقلوب یک رشته و اشاره گر ها
نقل قول:
نوشته شده توسط
karim orooji
دوست عزيز
بهتر نيست به اين صورت بنويسيم
long memory (*long)
ممنون از راهنمايي اما چرا برنامه خروجي نداره
ميخوام با وارد كردن يك عدد ادرس اون خونه رو نمايش يده
نه این برنامه همین کارو براتون می کنه .
#include <iostream.h>
#include <stdlib.h>
long* memory(long);
long main()
{
long n;
cin>>n;
cout << memory(n);
return 0;
}
//********memory*************
long* memory(long a)
{
long *fp;
fp=new long(a);
if(!fp)
{
cout<<"allocation failure";
exit(1);
}
return fp;
}
نقل قول: اشكال در مورد مقلوب یک رشته و اشاره گر ها
اینم یه جواب کوتاه واسه سوال اولتون که از تابع reverse خود STL استفاده می کنه
#include<cstdio>
#include<algorithm>
char c[100];
int main()
{
scanf("%s", c);
std::reverse(c, c+strlen(c));
printf("%s\n", c);
return 0;
}