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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 16.06.2011, 12:35   #1
Kulikcha
Пользователь
 
Регистрация: 16.06.2011
Сообщений: 15
По умолчанию Никак не могу исправить ошибку.

Здравствуйте всем! Подскажите, кто может. Написал программу на с++ с использованием указателей. Программа на входе получает строку, а выводит разделённую по пробелам строку на консоль. Вот текст программы.

Код:
#include<iostream>
#include<cstdio>
using namespace std;
int main()
{
	char text[80],tokens[80];
	char *p,*q;
	cout<<"Enter a phrase: "<<endl;
	gets(text);
	p=text;
	while(*p) {
		q=tokens;
		while(*p != " " && *p) {
			*q=*p;
			q++;
			p++;
			if(*p) 
			{
				p++;
				*q='\0';
			}
		}
			cout<<tokens;
	}
return 0;
}

В результате компиляции вылетает сообщение об ошибке: error C2040: !=: "int" отличается по уровням косвенного обращения от "const char [2]"

Кто знает в чём причина ошибки и как её исправить?

Последний раз редактировалось ACE Valery; 18.06.2011 в 14:05.
Kulikcha вне форума Ответить с цитированием
Старый 16.06.2011, 12:41   #2
Guy
Форумчанин
 
Регистрация: 15.12.2010
Сообщений: 398
По умолчанию

*p != " " -> *p != ' '
Guy вне форума Ответить с цитированием
Старый 16.06.2011, 22:43   #3
Kulikcha
Пользователь
 
Регистрация: 16.06.2011
Сообщений: 15
По умолчанию

Уважаемый Guy. На это исправление visual c++ выдаёт ошибку, что ' '- пустая символьная константа.
Kulikcha вне форума Ответить с цитированием
Старый 16.06.2011, 23:44   #4
pproger
C++ hater
СтарожилДжуниор
 
Аватар для pproger
 
Регистрация: 19.07.2009
Сообщений: 3,336
По умолчанию

2Kulikcha
ты определись, на чем ты пишешь, си или плюсы
на сях:
Код:
#include <stdio.h>

int main()
{
    char src[128], dest[128];
    char *pSrc = src, *pDest = dest;

    fgets(src, sizeof(src), stdin);

    while (*pSrc) {
        if (*pSrc == ' ' || !(*(pSrc + 1))) {
            *pDest = '\0';
            pDest = dest;
            printf("%s\n", pDest);
        } else {
            *pDest++ = *pSrc;
        }
        pSrc++;
    }

    return 0;
}
на плюсах:
Код:
#include <iostream>
#include <iterator>
#include <string>
#include <algorithm>
#include <sstream>
#include <memory>

using namespace std;

int main()
{
    string str;
    getline(cin, str);
    stringstream ss(str);
    copy(istream_iterator<string>(ss), istream_iterator<string>(), ostream_iterator<string>(cout, "\n"));
}
I invented the term Object-Oriented, and I can tell you I did not have C++ in mind. (c)Alan Kay

My other car is cdr.

Q: Whats the object-oriented way to become wealthy?
A: Inheritance
pproger вне форума Ответить с цитированием
Старый 16.06.2011, 23:49   #5
Scaevola
Пользователь
 
Аватар для Scaevola
 
Регистрация: 08.06.2011
Сообщений: 25
По умолчанию

Сделай не '' а ' '. То есть поставь пробел между ними.
ВСЕ ДОЛЖНО ЗАРАБОТАТЬ.
Scaevola вне форума Ответить с цитированием
Старый 17.06.2011, 00:05   #6
Kulikcha
Пользователь
 
Регистрация: 16.06.2011
Сообщений: 15
По умолчанию

Спасибо вам. Всё заработало!
Kulikcha вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не могу найти ошибку... хотя я ее нашел... но не знаю как исправить))) ( удаление строки из файла) dykatob Общие вопросы C/C++ 0 03.06.2011 10:42
не могу найти ошибку,точнее как исправить!(Задание с файлами) Ксения Вадимовна)) Помощь студентам 0 06.12.2010 22:39
Не могу исправить ошибку.(Турбо Паскаль) alzm Помощь студентам 4 25.03.2010 14:44
массив записи, не могу исправить ошибку Алекс К. Помощь студентам 3 30.05.2009 02:28