
25.09.2009, 23:09
|
|
Постоянный
Регистрация: 16.08.2006
Сообщений: 640
С нами:
10386906
Репутация:
599
|
|
дык ты в отладчике посомтри, что передаешь функции atof, и вставь сюда.
|
|
|

25.09.2009, 23:20
|
|
Постоянный
Регистрация: 29.09.2008
Сообщений: 553
С нами:
9270510
Репутация:
519
|
|
Добрый день!
Пишу "Регулярку"..
код:
Код:
#include <iostream>
#include <string.h>
using namespace std;
int main()
{
char buffer;
char * a;
char * b;
char text[] = "<a>ssssssssssssssss</a>";
a=strstr(text,"<a>");
if(a)
{
b=strstr(text,"</a>");
if(b)
{
strncpy(buffer,a,b-a);
}
}
cout<<buffer;
system("pause");
}
В итоге получаю:
<a>sssssssssssssss[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[...[ДОФИГА НЕПОНЯТНЫХ СИМВОЛОВ]
Как исправить?
|
|
|

25.09.2009, 23:25
|
|
Участник форума
Регистрация: 11.09.2008
Сообщений: 107
С нами:
9296442
Репутация:
21
|
|
Как говриться дурная голова рукам покоя не дает. Вся проблема была в том что выводя
это функцией
printf("here is point %d\n",temp.aPoints[i]);
Я выводил целое число вместо типа добле и получал херню полную, а так код работает.
Спасиб Ra$cal что возился со мной,мог бы поставил 10 '+.'
ЗЫ
Ну а что поделать опыт он вот так и появляется.
|
|
|

25.09.2009, 23:45
|
|
Познавший АНТИЧАТ
Регистрация: 05.03.2007
Сообщений: 1,985
С нами:
10097606
Репутация:
3349
|
|
2 -m0rgan-
ты копируеш строку но забываеш про символ конца строки. можно сделать так:
Код:
len = b-a;
strncpy(buffer,a, len);
buffer[len] = 0;
|
|
|

25.09.2009, 23:58
|
|
Постоянный
Регистрация: 29.09.2008
Сообщений: 553
С нами:
9270510
Репутация:
519
|
|
slesh, спс иероглифов теперь нету, но есть "<a>":
<a>sssssssssssssss
|
|
|

26.09.2009, 12:26
|
|
Постоянный
Регистрация: 29.09.2008
Сообщений: 553
С нами:
9270510
Репутация:
519
|
|
Акиуально
|
|
|

26.09.2009, 12:35
|
|
Участник форума
Регистрация: 26.11.2008
Сообщений: 158
С нами:
9187097
Репутация:
158
|
|
можно вот так
Код:
char *a="<a>asdasfasfas";
printf("%s\n",a);
a+=3;
printf("%s\n",a);
|
|
|

26.09.2009, 15:01
|
|
Постоянный
Регистрация: 16.08.2006
Сообщений: 640
С нами:
10386906
Репутация:
599
|
|
правильнее все таки так:
a += strlen("<a>");
чтоб без магических циферок.
|
|
|

26.09.2009, 18:21
|
|
Познающий
Регистрация: 09.09.2009
Сообщений: 33
С нами:
8774935
Репутация:
0
|
|
PHP код:
#include <stdio.h>
#include <conio.h>
int main() {
char *a = "shit";
int sam = strlen("a");
printf(sam);
}
А у меня не пашет
ЗЫ: поячти ни одну функцию норм не могу юзнуть ептю...даже abs()
Последний раз редактировалось Kreoda; 26.09.2009 в 18:32..
|
|
|

27.09.2009, 13:29
|
|
Участник форума
Регистрация: 02.12.2007
Сообщений: 132
С нами:
9705420
Репутация:
21
|
|
Сообщение от Kreoda
PHP код:
#include <stdio.h>
#include <conio.h>
int main() {
char *a = "shit";
int sam = strlen("a");
printf(sam);
}
А у меня не пашет
ЗЫ: поячти ни одну функцию норм не могу юзнуть ептю...даже abs()
Ну ты хоть сам понимаешь что ты тут делаешь?
Ты указателю выделил память или ты в нирвану пишешь слово? Далее, ты в переменную sam записываешь длину строки в кавычках, а я так понял что нужно размер переменной вывести. А про printf я вообще молчу.
Вот рабочий вариант:
Код:
int main() {
char a[] = "shit";
int sam = strlen(a);
printf("%d",sam);
}
Читай литературу!!!!!!
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|