Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 17.05.2014, 21:29   #1
Nata Golden rose
Пользователь
 
Регистрация: 03.12.2008
Сообщений: 20
По умолчанию Подскажите пожалуйста как конвентировать из Pointer в char

Подскажите пожалуйста как сравнить pointer и char

например программа: когда сравнивает плюс с плюсом говорит False

Код:
#include <stdio.h>
#include <string.h>
 
int main ()
{
  char str[] ="4 + 5";
  char *sp;
 
  sp = strtok (str," ");
 
 while (sp != NULL)
  {
        if((sp == '+')||(sp == '-')||(sp == '*')||(sp =='/')) //как можно по другому сравнить?
        {
            // и вот сюда он никогда не заходит
        }
        
        
        
         else
               // а все отправляет в эту часть цикла
               
    sp = strtok(NULL, " ");
    }
return 0;
}
Nata Golden rose вне форума Ответить с цитированием
Старый 17.05.2014, 22:02   #2
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,726
По умолчанию

Цитата:
// и вот сюда он никогда не заходит
А чего он туда зайдет? sp - это указатель, число в общем случае, фраза "разыменование указателя" ничего не говорит?

Что-то странное у вас в коде, стрток'ом ищите пробеле, указатель не сдвигаете и пытаетесь сравнивать не с пробелом... Не проще стрток'ом сразу искать ваши +, -, *?

Последний раз редактировалось p51x; 17.05.2014 в 22:04.
p51x вне форума Ответить с цитированием
Старый 17.05.2014, 22:22   #3
Nata Golden rose
Пользователь
 
Регистрация: 03.12.2008
Сообщений: 20
По умолчанию

Цитата:
Сообщение от p51x Посмотреть сообщение
А чего он туда зайдет? sp - это указатель, число в общем случае, фраза "разыменование указателя" ничего не говорит?
да я уже поняла Спасибо,
Цитата:
Сообщение от p51x Посмотреть сообщение
Что-то странное у вас в коде, стрток'ом ищите пробеле, указатель не сдвигаете и пытаетесь сравнивать не с пробелом... Не проще стрток'ом сразу искать ваши +, -, *?
у меня просто он большой код и там не только нужно найти плюсы и минусы ну и еще приоритеты опреаций вывести и тд. А подскажите пожалуста почему когда я передаю этот указатель дальше в функцию compare(sp) он у меня опять не сравнивает
Код:
int compare(char *ch)
{
    if((*ch == '+')||(*ch == '-'))
      
        return 1;
    if((*ch == '*')||(*ch =='/'))
        return 2;
}
Nata Golden rose вне форума Ответить с цитированием
Старый 17.05.2014, 22:29   #4
Nata Golden rose
Пользователь
 
Регистрация: 03.12.2008
Сообщений: 20
По умолчанию

Цитата:
Сообщение от Nata Golden rose Посмотреть сообщение
А подскажите пожалуста почему когда я передаю этот указатель дальше в функцию compare(sp) он у меня опять не сравнивает
Код:
int compare(char *ch)
{
    if((*ch == '+')||(*ch == '-'))
      
        return 1;
    if((*ch == '*')||(*ch =='/'))
        return 2;
}
Спасибо все работает!!!
Nata Golden rose вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Подскажите пожалуйста, как дорешать задачку! Mashutik25 Помощь студентам 0 30.10.2009 22:26
Подскажите как решить, пожалуйста Dimon4ic Паскаль, Turbo Pascal, PascalABC.NET 0 10.06.2009 20:17
Подскажите пожалуйста, Как реализовать нумерацию. Условие внутри. vladtr Microsoft Office Excel 2 10.06.2009 15:36
Подскажите пожалуйста, как выразить x в степени n? Dimanw92 Паскаль, Turbo Pascal, PascalABC.NET 6 03.10.2008 10:47
Подскажите пожалуйста новичку в С++ как написать программку saratovalex Помощь студентам 3 21.08.2008 11:06