PDA

View Full Version : بررسی دو کاراکتر در C++



YourWorldToday
سه شنبه 13 اسفند 1387, 23:05 عصر
با سلام
من می خوام یک یک عنصر خانه ارایه کاراکتر را با یک کاراکتر چک کنم مثال



a[i]=="["


از دستور


if(strncmp(input[i],"[",0)==1)

استفاده کردم
ولی خطا


cannot convert 'int' to 'cosnt cahr *'

میده.
دوستان لطفا راهنمایی بفرمایید.
خیلی کارم گیره

Mehdi Asgari
سه شنبه 13 اسفند 1387, 23:15 عصر
پارامتر های اول و دوم تابع strncmp از نوع رشته (* const char) هستن. شما داری char بهش پاس میدی
[input[i از نوع char هست
برای چک کردن دو کاراکتر از عملگر تساوی (==) استفاده کن
(این تابع برای مقایسۀ رشته ها استفاده میشه نه کاراکترها)

SamaPic
سه شنبه 13 اسفند 1387, 23:23 عصر
با سلام خدمت دوست عزيز.


با سلام
من می خوام یک یک عنصر خانه ارایه کاراکتر را با یک کاراکتر چک کنم مثال



a[i]=="["
از دستور


if(strncmp(input[i],"[",0)==1)
استفاده کردم
ولی خطا


cannot convert 'int' to 'cosnt cahr *'
میده.
دوستان لطفا راهنمایی بفرمایید.
خیلی کارم گیره


1. در كد اول دوتا مساوي درست نيست.
2. شما چرا از توابع دستي استفاده نمي كنيد؟ وقتي لازم نيست شما بهتر است بصورت دستي شرط را چك كنيد.
3. از ارور اينگونه برداشت مي شود كه شما در برنامه ي خود در جايي مقدار اينتيجر را برابر مقدار كاراكتر قرار داده ايد و كامپايلر قادر به برابر كردن آنها نيست.
4. از كدام كامپايلر استفاده مي كنيد؟
5.برنامه به زبان سي ++ است يا سي؟ چون تا جايي كه حافظه ي ضعيف من به من ياري مي دهد اين دستور مربوط به سي است و معمولا دستورات سي در سي ++ با كمي تغيير اضافه مي شوند.
اگر كل كد برنامه را مي گذاشتيد بهتر مي شد.
اميدوارم كمكي كرده باشم.
خدانگهدار.

YourWorldToday
چهارشنبه 14 اسفند 1387, 08:01 صبح
این هم از کد برنامه
برنامه یک رشته را دریافت می کنه به دنبال کاراکتر "[" و "]"می گرده و رشته ای را که در بین این دو کاراکتر باشه را برعکس می کنه



#include<stdio.h>
#include <iostream.h>
#include <string.h>
#include <conio.h>
class ReversingBrackets
{
public:
char *removeBrackets(char *input)
{
int b=0;
char c;
char *result;
for(int i=0;i<=strlen(input);i++)
{
if(strncmp(input[i],"[",0)==1)
{
i++;
char *rev;
int n,c=0;
while(input[i]!="]")
{
rev[c]=input[i];
i++;
}
i++;
n = strlen(rev);
for(int m=n;m>=n;m--)
{
b++;
result[b]+=rev[m];
}
}
else
{
result[b]+=input[i];
b++;
}
}
return result;
}
};
void main()
{
ReversingBrackets RB;
char *rt;
cout<<"Enter Your String :\n";
cin>>rt;
cout<<RB.removeBrackets(rt);
}