ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > Программирование > С/С++, C#, Delphi, .NET, Asm
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #1191  
Старый 12.06.2008, 02:07
procedure
Banned
Регистрация: 22.12.2007
Сообщений: 660
Провел на форуме:
3885269

Репутация: 1158


По умолчанию

t.e. etu stroku nujno ispolzovat vmesto while?
 
Ответить с цитированием

  #1192  
Старый 12.06.2008, 02:15
Delimiter
Banned
Регистрация: 08.04.2005
Сообщений: 446
Провел на форуме:
2187381

Репутация: 518
По умолчанию

i++ и ++i
отличаются тем когда должно быть увеличение i
i++ после текущей ситуации
++i до текущей ситуации

уловие понял правильно.... ввод идет прямо в массив заодно проверяясь
самое смешное будет ниже

for(i=0;(array[i]=(char )getchar())!=EOF;i++)
{
switch(array[i])
{
case '\t':
case '1':
case '2':
case '3':
case '4':
case '5': i--; //фильтруются все символы от 1 до 5 и табуляции
} // за счет смещения текущего положения счетчика цикла
}
array[i]=0; //все строки в С должны завершаться нулем
printf("%s",array) // при указании массива без индексов берется его адрес

Последний раз редактировалось Delimiter; 12.06.2008 в 02:18..
 
Ответить с цитированием

  #1193  
Старый 12.06.2008, 02:16
procedure
Banned
Регистрация: 22.12.2007
Сообщений: 660
Провел на форуме:
3885269

Репутация: 1158


По умолчанию

Код:
#include <stdio.h>

main()
{
	int c, nl, t, space, n, i, l;
	char array[100];
	nl = c = t = space = n = 0;
	
	
	for (i = 0; i < 100; ++i) {
		array[i] = 0;
	}
	
	i = 0;
	for(i=0;(array[i]=(char )getchar())!=EOF;i++) {
		if (array[i] == '\n') {
			
			printf("\nSymbol: ");
			
			for (l = 0; l < i; ++l) {
				printf("%d ", array[l]);
			}
			printf("\nTab: %d\nSpace: %d\nNumber: %d\n", t, space, n);
			break;
		}
		else if (c == '\t') {
			++t;
		}
		else if (c == ' ') {
			++space;
		}
		else if (c >= '0' && c <= '9') {
			++n;
		}
	}
}
ya perepisal kod nemonogo podrugomu, On vse ravno vidaet takoi resultat:
Цитата:
[root@procedure /tmp/programming]# cc cpstring.c
cpstring.c:62:4: warning: no newline at end of file
[root@procedure /tmp/programming]# /tmp/programming/a.out
sadfg

Symbol: 115 97 100 102 103
Tab: 0
Space: 0
Number: 0
[root@procedure /tmp/programming]#
 
Ответить с цитированием

  #1194  
Старый 12.06.2008, 02:21
z01b
Постоянный
Регистрация: 05.01.2007
Сообщений: 508
Провел на форуме:
2360904

Репутация: 1393


По умолчанию

>>
ya perepisal kod nemonogo podrugomu, On vse ravno vidaet takoi resultat

ну дык, а какой тебе результат нужен, если у тебя нету знака табуляции, новой строки и т.д.?

Последний раз редактировалось z01b; 12.06.2008 в 22:56..
 
Ответить с цитированием

  #1195  
Старый 12.06.2008, 02:23
procedure
Banned
Регистрация: 22.12.2007
Сообщений: 660
Провел на форуме:
3885269

Репутация: 1158


По умолчанию

ya ehe ot seba dobavil case '\n': break; chtob is programmi vihodit bilo mojno, t.e. iz cikla.
no on chto to ne vihodit....sori ya swith prosto ehe ne prohodil...
 
Ответить с цитированием

  #1196  
Старый 12.06.2008, 02:29
Delimiter
Banned
Регистрация: 08.04.2005
Сообщений: 446
Провел на форуме:
2187381

Репутация: 518
По умолчанию

в цикле for //// ты должен считать

а уж по окончании выдавать результаты , а ты при первом же нахождении
кода "возврата строки" пытаешься напечатать!

Код:
t=space=n=0;
for(i=0;(array[i]=(char )getchar())!=EOF;i++)
{
   if(array[i]=='\t')
      t++; 
   if(array[i]>='0' && array[i]<='9')
      n++;
   if(array[i]==' ')
      space++;
}
array[i]=0; //все строки в С должны завершаться нулем
printf("Symbol:%s\r\n",array); // при указании массива без индексов берется его адрес
printf("Tab:%d\r\n",t);
printf("Space:%d\r\n",space);
printf("Number:%d\r\n",n);

Последний раз редактировалось Delimiter; 12.06.2008 в 02:40..
 
Ответить с цитированием

  #1197  
Старый 12.06.2008, 02:29
procedure
Banned
Регистрация: 22.12.2007
Сообщений: 660
Провел на форуме:
3885269

Репутация: 1158


По умолчанию

Цитата:
ну дык, а какой тебе результат нужен, если у тебя нету знака табуляции, новой строки и т.д.?
mne nujen chtob on vidaval ne Symbol: 115 97 100 102 103, a Symbol: sadfg
 
Ответить с цитированием

  #1198  
Старый 12.06.2008, 02:31
Delimiter
Banned
Регистрация: 08.04.2005
Сообщений: 446
Провел на форуме:
2187381

Репутация: 518
По умолчанию

ну ты выводишь каждый элемент как число
printf("%d ", array[l]);

если хочешь как символ
printf("%с ", array[l]);

но взгляни ВЫШЕ как я вывожу весь массив одной 0-завершенной строкой...

printf("%s",array); //вывод строки символов пока не встретится 0!

Последний раз редактировалось Delimiter; 12.06.2008 в 02:39..
 
Ответить с цитированием

  #1199  
Старый 12.06.2008, 02:36
procedure
Banned
Регистрация: 22.12.2007
Сообщений: 660
Провел на форуме:
3885269

Репутация: 1158


По умолчанию

chvaki ya ponyal, chtob vivelsya simvol nujno bilo ispolzovat vmesto %d, %s. Spasibo bolshoe. Dumau do zavtra rashiru funkcional. =))
 
Ответить с цитированием

  #1200  
Старый 12.06.2008, 03:09
klown
Новичок
Регистрация: 20.03.2008
Сообщений: 12
Провел на форуме:
112695

Репутация: 8
По умолчанию

Цитата:
Сообщение от procedure  
a est ved raznica mejdu ++i; and i++; .
ну это стандартно, что ++i сперва инкрементируется а потом используется а i++ сперва используется а потом инкрементируется..

Последний раз редактировалось klown; 12.06.2008 в 03:19..
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Часто задаваемые вопросы по MySQL Серый PHP, PERL, MySQL, JavaScript 5 28.12.2006 18:26
Интернетчики задали российскому президенту очень странные вопросы podkashey Мировые новости 4 07.07.2006 16:53
Вопросы по Ipb 2.0 Voodoo_People Форумы 26 15.02.2005 22:57



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ