Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > Как найти конец строки


Автор: FiMa1 2.5.2007, 15:49
Доброго Всем времени суток!

В функцию func1 передается указатель char *pstr. Функция заполняет память, начиная с этого адреса строкой вида: "0101010101010".  Другая функция - func2, получает адрес начала этой строки (исходное значение *pstr), func2 должна узнать длину строки. Пытался подсчитать длину так:
Код
int i = 0;
while( pstr[i++] ) ;

Но подсчет успешно завершается, как только в строке будет встречен первый '0'... Подскажите, плз, как разрешить ситуацию...

Автор: Fazil6 2.5.2007, 15:57
Цитата(FiMa1 @  2.5.2007,  15:49 Найти цитируемый пост)
Подскажите, плз, как разрешить ситуацию...

непонятно что , как и чем ты заполняешь... Скорее всего там у тебя косяк...

Автор: HappyLife 2.5.2007, 15:59
Каким образом он заполняет память строкой вида
01010101
Если так
Код

str[0] = 0;
str[1] = 1;

То замени на
Код

str[0] = '0' + 0;
str[0] = '0' + 1;


или просто юзай string

Автор: FiMa1 2.5.2007, 16:10
Цитата(Fazil6 @ 2.5.2007,  15:57)
непонятно что , как и чем ты заполняешь... Скорее всего там у тебя косяк...

Попытаюсь воспроизвести ситуацию, реально кода намного больше, приводить его здесь было бы кощунством.
Код
void func1(char *pstr);
void func2(char *pstr);

int main()
{
    str[20];
    func2(str);

    return 0;
}

void func1(char *pstr)
{
    for( int i = 0; i < 10; i++ )
        str = '0';
}//str = "0000000000юююююююююю"

void func2(char *pstr)
{
    func1(pstr);
    //как здесь узнать где в str заканчиваются "полезные" данные?
}

Автор: knut 2.5.2007, 16:18
Цитата

//как здесь узнать где в str заканчиваются "полезные" данные?

 if(str[i]=='/0') то конец

Автор: Ln78 2.5.2007, 16:26
Цитата(FiMa1 @ 2.5.2007,  16:10)
Код

void func1(char *pstr)
{
    for( int i = 0; i < 10; i++ )
        str = '0';
}//str = "0000000000юююююююююю"



Где определена str и какое отношение она имеет к pstr. И зачем в цикле делать одно и то же?

Автор: FiMa1 2.5.2007, 16:41
Ок, сорри.. Вышеозначенная проблема действительно надуманая. Совсем запарился  smile ... Извините за беспокойства!

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)