Добрый день. Я впервые сталкиваюсь с программирование, по этому вопрос опишу подробно.
После распознания текста, у меня имеется текст с запятой:
CODE:string rasp1=111,111;
Задача преобразовать его в:
CODE:double znach1=111.111
Я попытался сделать это так
код с ошибкой (Отобразить)
CODE:string rasp1="111,111";
double znach1=formatsn(zamena(rasp1));
messagebox (znach1);
function zamena(string a)
{
int dlinna=size(a);
char simvol[20];
strcpy(#simvol[0],a);
string b="";
for (int n=0; n<dlinna; n++)
{
if (simvol[n]==',')simvol[n]='.';
b=b+simvol[n];
}
return b;
}
При этом, строка
CODE:if (simvol[n]==',')simvol[n]='.';
Приводит к ошибке. Но, если заменить запятую на любой другой символ, то все работает.
заменена запятая на z (Отобразить)CODE:string rasp1="111z111";
double znach1=formatsn(zamena(rasp1));
messagebox (znach1);
function zamena(string a)
{
int dlinna=size(a);
char simvol[20];
strcpy(#simvol[0],a);
string b="";
for (int n=0; n<dlinna; n++)
{
if (simvol[n]=='z')simvol[n]='.';
b=b+simvol[n];
}
return b;
}
Тогда я попытался записать запятую в переменную, что бы попробовать с ней
Но тогда выскакивает ошибка. Это показалось мне странным, ведь в simvol[3] запятая храниться без проблем. Я попробовал так:
Код выполняется, но с ошибкой (Отобразить)CODE:string rasp1="111,111";
double znach1=formatsn(zamena(rasp1));
messagebox (znach1);
function zamena(string a)
{
int dlinna=size(a);
char simvol[20];
strcpy(#simvol[0],a);
string b="";
char c[3];
string f="z,z";
strcpy(#c[0],f);
for (int n=0; n<dlinna; n++);
{
if (simvol[n]==c[1])simvol[n]='.';
b=b+simvol[n];
}
return b;
}
При этом преобразование удалось, но все равно, перед меседжбоксом выскакивает эта ошибка, на которой надо кликнуть "пропустить":
[img]
(для просмотра ссылки Вам необходимо авторизоваться) /img]