Форум С++

 

Ответить на сообщение

Вернуться к теме

Вы отвечаете на сообщение:

Автор: EXP   (17.12.2008 в 18:07)
у меня выдаёт длинну строки только если строка объявлена как char str[37]
, а c указателем даже на такие-же char не смог придумать как посчитать строку

попробовал по другому решить предложенную задачку, но не смог избавиться от strlen()
#include <stdio.h> 
#include <conio.h> 
#include <string.h> // strlen

int main() {
 
int t, i,i2, l2s, max=0;
static char str[37] = "1111   000000 11 111111111  00 111";
char bf[512];

printf("\n sizeof %i\n\n"sizeof str);

for(i=0; 1; i = i2) {

ifsscanf(&str[i], "%s", &bf)< 0) break;
//sscanf не захватывает пробельные символы

l2s = strlen(bf);//
if (max<l2s) max = l2s;

  for(i2=i+l2s; 1; i2++){ // пропуск пробелов 0x20=" "
    if (str[i2] != 0x20) break;
  }
  
  printf(" bf = %s\n", bf);
} // end of for

printf("\n max = %i\n\n\n", max);

i=-1;

while((i+=1) < max) printf("%c", str[i]); // вывод max символов строки

  getch();
  return 0;
}

Не уверен в правильности и оптимальности написания


Ваше имя:

Пароль:

Цитировать

Используйте тэги для выделения текста:
Код: [code][/code]
Жирный: [b][/b]
Наклонный: [i][/i]
URL: [url][/url]

Сообщение:

Прикрепить: