Logo Море(!) аналитической информации!
IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware
Архив форумов ЦИТФорума
Море(!) вопросов - Море(!) ответов
 
 FAQFAQ   ПоискПоиск   ПользователиПользователи   ГруппыГруппы   РегистрацияРегистрация 
 ПрофильПрофиль   Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход 
Как правильно задавать вопросы

Препод придирается или виды символьных констант

 
Перейти:  
Этот форум закрыт, вы не можете писать новые сообщения и редактировать старые.   Эта тема закрыта, вы не можете писать ответы и редактировать сообщения.    Список форумов Архив форумов ЦИТФорума -> Программирование
Предыдущая тема :: Следующая тема  
Автор Сообщение
Тоха
Гость





СообщениеДобавлено: Вт Май 11 2004 15:06    Заголовок сообщения: Препод придирается или виды символьных констант Ответить с цитатой

Я вообще только учусь программировать на C...
Написал программу-статистика строки(типа в универе надо ее сдать),все работает.Вот на всякий случай код:
#include <stdio.h>
#include <string.h>
main()
{
char awake[150];
int tmp,k,i,j;
printf("Vvedite stroky\n");
gets(awake);
for(i=0;(i<strlen(awake));i=i+k)
{
k=1;
for (j=i+1;(j<strlen(awake));j++)
if (awake[j]==awake[i])
{
tmp=awake[j];
awake[j]=awake[i+k];
awake[i+k]=tmp;
k=k+1;
}
if (awake[i]==32)
printf("%d elementov probel\n",k);
else
printf("%d elementon %c\n",k,awake[i]);
}
}

Условие if (awake[i]==32) ввел для красоты отображения статистики.Типа,пробел визуально-пустое место,поэтому вместо этого пустого места у меня будет писаться
elementov probel.
Препод говорит,как,мол,можно еще представить пробел кроме как через код 32?Я ему говорю ,типа можно еще записать так:
if (awake[i]==' ')
Правильно, говорит,но есть еще до хера способов,типа,пока все не перечислишь хер зачту тебе прогу.ну я ему еще:
if (awake[i]==040)8-ная контст
if (awake[i]==0x20)16
if (awake[i]=='\ ')
говорит,еще 2 способа есть...
Помогите!Please!
Вернуться к началу
grayrat



Зарегистрирован: 30.06.2003
Сообщения: 189

СообщениеДобавлено: Вт Май 11 2004 16:39    Заголовок сообщения: Ответить с цитатой

можно:
if(awake[i]-32) // и иже с ним -' ', -0x20, -040
printf("%d elementon %c\n",k,awake[i]);
else
printf("%d elementov probel\n",k);
, но это извращение

Можно:
if( isspace(awake[i]) ) ... но тогда будут считаться и табуляции, тебе это не мешает ?

Кто ещё предложит способы ?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
совсем незнакомый



Зарегистрирован: 24.12.2003
Сообщения: 183
Откуда: Israel

СообщениеДобавлено: Вт Май 11 2004 19:38    Заголовок сообщения: Ответить с цитатой

Препод прав. У тебя нет проверки ни на один из двух табуляторов.
Код:

if ('\t'==c) printf("horizontal tab.\n");
if ('\v'==c) printf("vertical tab.\n");
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
GREA



Зарегистрирован: 14.05.2003
Сообщения: 758
Откуда: Новосибирск

СообщениеДобавлено: Вт Май 11 2004 20:00    Заголовок сообщения: Ответить с цитатой

Рабочий пример еще одного варианта:)))
#include<stdio.h>
#include<string.h>
main()
{int i,k=1;
char tmpstr[7];
char awake[10];
strcpy(awake,"abcd fg");
for(i=0;i<strlen(awake);i++){
strcpy(tmpstr,"!");//one char:)
printf("%d elementov %s\n",k,(awake[i]-' ')?strset(tmpstr,awake[i]):strcpy(tmpstr,"probel"));
}}
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Mr.Nobody
Гость





СообщениеДобавлено: Ср Май 12 2004 18:50    Заголовок сообщения: Ответить с цитатой

Дело скорее всего не в табуляциях, скорее он имел ввиду эскейп-последовательности:
1. if ( awake[i]='\040' )
2. if ( awake[i]='\x20' )
Вернуться к началу
Тоха
Гость





СообщениеДобавлено: Ср Май 19 2004 20:32    Заголовок сообщения: Ответить с цитатой

Спасибо всем.Прогу я здал(просто добавил проверку на табуляцию)Вот говорю:"Приймите у меня программку,вы на прошлом уроке не прняли из-за того что проверки на табуляцию не было.Вот,теперь сделал!" Прокатило,про виды символьных конст. видимо забыл!
Вернуться к началу
Показать сообщения:   
Этот форум закрыт, вы не можете писать новые сообщения и редактировать старые.   Эта тема закрыта, вы не можете писать ответы и редактировать сообщения.    Список форумов Архив форумов ЦИТФорума -> Программирование Часовой пояс: GMT + 3
Страница 1 из 1

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах


Powered by phpBB © 2001, 2002 phpBB Group
Русская поддержка phpBB

 

IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware

Информация для рекламодателей PR-акции, размещение рекламы — adv@citforum.ru,
тел. +7 495 6608306, ICQ 232284597
Пресс-релизы — pr@citforum.ru
Послать комментарий
Информация для авторов
This Web server launched on February 24, 1997
Copyright © 1997-2000 CIT, © 2001-2006 CIT Forum
Внимание! Любой из материалов, опубликованных на этом сервере, не может быть воспроизведен в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. Подробнее...