PDA

View Full Version : خطا در زمان تعریف، انتصاب و کار با متغیر char



milad_d993
پنج شنبه 21 فروردین 1393, 09:56 صبح
سلام دوستان
یه تیکه کد نوشتم که یه ورودی بگیره و روش ی قسمت هاییش رو حذف کنه؛ به صورت زیر:
Input: +INQXXXX:XX:XXXXXX:1235:1700
OutPuts:
AT+Pair = XXXX,XX,XXXXXX,30
AT+Link = XXXX,XX,XXXXXX


#include <stdio.h>
#include <conio.h>
void main()
{
char str[50];
char temp[50];
int i,n;

gets(str);

n = 0;
for(i=4;i<strlen(str);i++) // baraye inke az "+INQ" sarfe nazar konad... (0,1,2,3)
{
if(str[i] != ':')
{
temp[i] = str[i];
}
else
{
if (n <=2)
{
temp[i] = ',';
n++;
}
else
{
break;
}
}
}
char atPair [strlen(temp)+10+3]; // 10 karakter'e ezafe baraye in: "AT+Pair = " va 3 ta baraye ",30"
char atLink [strlen(temp)+10]; // 10 karakter'e ezafe baraye in: "AT+Link = "

atPair = "AT+Pair = " + temp + ",30";
atLink = "AT+Link = " + temp;

printf("%s",atPair);
printf("%s",atLink);
getch();
}

میشه بگین مشکل کد از کجاس؟؟؟
از خط های 31 تا 35 خطا میده...
درضمن از شبیه ساز توربو سی++ (TurboC++‎‎‎‎‎‎‎‎‎ for Windows 7) استفاده میکنم...

ali chegini
پنج شنبه 21 فروردین 1393, 10:58 صبح
سلام.
امکان داره پیغام خطا رو بزار.

milad_d993
پنج شنبه 21 فروردین 1393, 11:43 صبح
خط 31 و 32: Declaration is not allowed here
در ضمن در خط 31 برای 3 و خط 32 برای 10 این خطا رو میده: constant expression required

char atPair [strlen(temp)+10+3];
char atLink [strlen(temp)+10];

در خط 34 و 35 هم این خطا رو میده: Invalid pointer addition

rahnema1
پنج شنبه 21 فروردین 1393, 21:33 عصر
#include <stdio.h>
#include <conio.h>
void main()
{
char str[50]={};
char temp[50]={};
int i,n,j=0;

gets(str);

n = 0;
for(i=4;i<strlen(str);i++) // baraye inke az "+INQ" sarfe nazar konad... (0,1,2,3)
{
if(str[i] != ':')
{
temp[j++] = str[i];
}
else
{
if (n <=2)
{
temp[j++] = ',';
n++;
}
else
{
break;
}
}
}
char atPair [strlen(temp)+10+3]; // 10 karakter'e ezafe baraye in: "AT+Pair = " va 3 ta baraye ",30"
char atLink [strlen(temp)+10]; // 10 karakter'e ezafe baraye in: "AT+Link = "


sprintf(atPair,"AT+Pair = %s,30",temp);
sprintf(atLink,"AT+Link = %s",temp);

printf("%s\n",atPair);
printf("%s",atLink);
getch();
}