Форум русскоязычного сообщества Ubuntu


Следите за новостями русскоязычного сообщества Ubuntu в Twitter-ленте @ubuntu_ru_loco

Автор Тема: требуется помощь в поиске  (Прочитано 759 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн iamkisly

  • Автор темы
  • Любитель
  • *
  • Сообщений: 93
  • это я в 10 лет назад
    • Просмотр профиля
    • Электроника как хобби
требуется помощь в поиске
« : 27 Октября 2010, 09:52:34 »
добрый день подскажите аналог win функции strupr(). В сети нашел лишь while(*str) *str++ = toupper(*str); но toupper работает лишь с 1 символом... а мне нужно сразу со всей строкой

Оффлайн VestniK

  • Активист
  • *
  • Сообщений: 594
    • Просмотр профиля
Re: требуется помощь в поиске
« Ответ #1 : 27 Октября 2010, 12:00:54 »
ну так ты же нашёл ответ. Оберни это в функцию и работай. Ты на plain С пишешь? Вот тут есть решение для C++ с использованием boost (второй ответ): http://stackoverflow.com/questions/735204/convert-a-string-in-c-to-upper-case

Оффлайн iamkisly

  • Автор темы
  • Любитель
  • *
  • Сообщений: 93
  • это я в 10 лет назад
    • Просмотр профиля
    • Электроника как хобби
Re: требуется помощь в поиске
« Ответ #2 : 02 Ноября 2010, 17:22:06 »
хмм.. спасибо.

вот чтоб темы дурных не плодить напишу тут.

нарисовал исправно работающую функцию:

bool func_in(char target, char src[])
    {   int i = 0;
        bool b;
        for(i = 0; i<sizeof(src); i++)
                {
                    if(target == src[i])
                        {
                            b = true;
                            break;
                        }
                    else {b = false;};
                };

    return b;
    };

вызываю:int main()
{       int i;
        char SRC[] = "01234 56789A BCDEF";
        char IN[4] = {' ', '1', 'A'};
        char buffer[5000] = {};
        int c = 1;
        for(i = 0; i < sizeof(SRC); i++)
            {   if (!func_in(SRC[i],IN))
                    {
                        char SR = SRC[i];
                        strcat(&buffer[c], &SR);
                        cout << buffer[c];
                        c = c + 1;
                    }
            }
        cout << "
::> " << buffer<<endl; // почему не работает ?
        cout << SRC <<endl;
}

это была преамбула))

теперь сам вопрос. Я недопонимаю, почему я могу обратиться к массиву buffer поэлементно
Цитировать
cout << buffer[c];
и соответственно печатается
Цитировать
023456789BCDEF
, чтобы вывести весь масссив как строку - это никак невозможно ? где промах мой ?

Заранее спасибо

Пользователь решил продолжить мысль 03 Ноября 2010, 10:34:47:
уфф.. разобрался. теперь проблема другая
« Последнее редактирование: 03 Ноября 2010, 10:34:47 от kisly »

 

Страница сгенерирована за 0.03 секунд. Запросов: 26.