Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей.
Здесь обсуждаются безопасность, программирование, технологии и многое другое.
Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
 |
|

12.06.2008, 02:07
|
|
Banned
Регистрация: 22.12.2007
Сообщений: 660
Провел на форуме: 3885269
Репутация:
1158
|
|
t.e. etu stroku nujno ispolzovat vmesto while?
|
|
|

12.06.2008, 02:15
|
|
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..
|
|
|

12.06.2008, 02:16
|
|
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]#
|
|
|

12.06.2008, 02:21
|
|
Постоянный
Регистрация: 05.01.2007
Сообщений: 508
Провел на форуме: 2360904
Репутация:
1393
|
|
>>
ya perepisal kod nemonogo podrugomu, On vse ravno vidaet takoi resultat
ну дык, а какой тебе результат нужен, если у тебя нету знака табуляции, новой строки и т.д.?
Последний раз редактировалось z01b; 12.06.2008 в 22:56..
|
|
|

12.06.2008, 02:23
|
|
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...
|
|
|

12.06.2008, 02:29
|
|
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..
|
|
|

12.06.2008, 02:29
|
|
Banned
Регистрация: 22.12.2007
Сообщений: 660
Провел на форуме: 3885269
Репутация:
1158
|
|
ну дык, а какой тебе результат нужен, если у тебя нету знака табуляции, новой строки и т.д.?
mne nujen chtob on vidaval ne Symbol: 115 97 100 102 103, a Symbol: sadfg
|
|
|

12.06.2008, 02:31
|
|
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..
|
|
|

12.06.2008, 02:36
|
|
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. =))
|
|
|

12.06.2008, 03:09
|
|
Новичок
Регистрация: 20.03.2008
Сообщений: 12
Провел на форуме: 112695
Репутация:
8
|
|
Сообщение от procedure
a est ved raznica mejdu ++i; and i++; .
ну это стандартно, что ++i сперва инкрементируется а потом используется а i++ сперва используется а потом инкрементируется..
Последний раз редактировалось klown; 12.06.2008 в 03:19..
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|