Автор: exp (17.12.2008 в 03:33)
какими функциями пытались делать ?
тоже чевойто со строками не разберусь никак , только стандартными сишными функциями хотел
, без strlen(), но почемуто у меня sizeof() всегда показывает 4 со строками, а читал где-то что должен размер строки показывать. Надо попробовать другим компилятором,
#include <stdio.h> // sscanf() printf()
#include <conio.h> // getch();
#include <malloc.h> // calloc() free()
#include <string.h> // strlen()
main() {
char *str = "111111 000000 11 111111111 00 111";
char *bf;
int p=0;
if( (bf = (char *)calloc(512, sizeof(char))) == NULL)
return 1; // выделение памяти или return
char *gc = (char *)calloc(1, sizeof(char));
while (sscanf( &str[p], "%s*", bf)
&& (p += strlen(bf)) < strlen(str)) {
while (sscanf(&str[p+1], "%c", gc)
&& gc == " ") { p++; } // здесь баг
/* хотел применить getc() вместо второго sscanf()
но просто отказалось работать. */
printf("%s\n %i\n", bf, p);
}
free(gc);
free(bf); // освободить память
getch();
return 0;
} |
У меня такой вопрос , извиняюсь что в не своей теме ,)
функция getc() обычно работает с указателем на память ?
, как пытался сделать getc(&bf[1])
и почему второй sscanf() не хочет считать пробелы ?
вроде должен считать , если "%c" (пробовал "%Fc", "%Nc", не работает на DevCpp)