Кибор » Кибор - Интегрированная среда разработки ботов » Вопросы и решение проблем » Помогите найти ошибку

Страниц (1): [1]
 

1. Eddi - 01 Декабря, 2016 - 10:28:11 - перейти к сообщению
CODE:
string strka="123 4567 890";
int mass[3];
SplitString(strka, #mass[0], " ");
messagebox(format(mass[1]));

function SplitString(string str, string #outputmass, char delim){
int n=1;
char a[1024];
strcpy(#a[0], str);
int sp=1;
int size_a=size(#a[0]);
loop(size_a){
if (a[n]!=delim){outputmass[sp]=outputmass[sp]+a[n];}
if (a[n]==delim){sp++;outputmass[sp]=outputmass[sp]+a[n];}
n++;
}
}


функция должна разделить цифры разделенные неким знаком-разделителем, и распихать их по некоторому массиву...
2. Kibor - 01 Декабря, 2016 - 10:43:50 - перейти к сообщению
 Eddi пишет:
string strka="123 4567 890";
int mass[3];//это string
SplitString(strka, #mass[0], " ");//Это char ' '
messagebox(format(mass[1]));

function SplitString(string str, string #outputmass, char delim){
int n=1;//Тут 0
char a[1024];
strcpy(#a[0], str);
int sp=1;//Тут 0
int size_a=size(#a[0]);
loop(size_a){
if (a[n]!=delim){outputmass[sp]=outputmass[sp]+a[n];}
if (a[n]==delim){sp++;outputmass[sp]=outputmass[sp]+a[n];}
n++;
}
}


CODE:
string strka="123 4567 890";
string mass[3];
SplitString(strka, #mass[0], ' ');
messagebox(mass[0]);


function SplitString(string str, string #outputmass, char delim){
int n=0;
char a[1024];
strcpy(#a[0], str);
int sp=0;
int size_a=size(#a[0]);
outputmass[sp]="";
loop(size_a){
if (a[n]!=delim){outputmass[sp]=outputmass[sp]+a[n];}
if (a[n]==delim){sp++;outputmass[sp]="";}
n++;
}
}
3. Dart_Zaiac - 01 Декабря, 2016 - 11:03:16 - перейти к сообщению
в первую очередь char в функцию загоняется через ' '(одинарная кавычка), а не " "(двойные)
во-вторую загонять int массив с определениев в функции как стринг не есть правильно

в массивах счет начинается с 0 эл-та. Но размер строки правильно нашел по ссылке на массив size(#a[0]);

а вообще вот рабочий код:
CODE:
string strka="545 6786 929";
string mass[3];
SplitString(strka, #mass[0], ' ');
messagebox(mass[2]);

function SplitString(string str, string #outputmass, char delim){
int n=0;
char a[1024];
strcpy(#a[0], str);
int sp=0;
int size_a=size(#a[0]);
outputmass[sp]="";
loop(size_a){
if (a[n]!=delim){outputmass[sp]=outputmass[sp]+a[n];}
if (a[n]==delim){sp++;outputmass[sp]="";}
n++;
}
}

Powered by ExBB FM 1.0 Final