1183 / 468 / 87
Регистрация: 23.06.2009
Сообщений: 6,390
1

Подсчет символов в строке

28.08.2009, 21:07. Показов 36026. Ответов 27
Метки нет (Все метки)

по К и Р надкнулся на такой код
C
1
2
double nc;
for(nc=0; getchar()!=EOF; ++nc);
я решил как то изменить код так,чтобы проги считала количество символов з массива вот мой код
C
1
2
3
4
5
6
7
char a[4];
a[0]="qqq";
a[1]="wwer";
a[2]="\0";
double nc;
for(nc=0; a[4]!=EOF; ++nc);
printf("%.0f/n", nc);
но я не знаю как сделать так чтобы прога считала...да я и не понимаю как в этом случае

C
1
2
double nc;
for(nc=0; getchar()!=EOF; ++nc);
прога работает?откуда она бере символы?

Добавлено через 1 минуту
ИЗВИНИТЕ ПЛИЗ ПОДСЧЕТ СИМВОЛОВ А НЕ СТРОК
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
28.08.2009, 21:07
Ответы с готовыми решениями:

Подсчет цифр, символов-разделителей и прочих символов в строке
#include <stdio.h> #include <locale.h> /* подсчет цифр, символов-разделителей и прочих...

Подсчет количества строк и символов в строке
Добрый день! Прошу вашей помощи! Нужно считать из файла количество строк и символов в строке, в...

Подсчет в строке символом повторяющихся символов
Что то я встал в ступр и не вижу ошибки. Учусь только поэтому прошу о помощи .) Суть такая, нужно...

Подсчет слов и символов во введенной строке
Здравствуйте. Помогите разрешить задачу. В консоли вводится управляющий символ (например &) и...

27
577 / 571 / 65
Регистрация: 29.01.2009
Сообщений: 1,274
28.08.2009, 21:18 2
Цитата Сообщение от МедведЪ Посмотреть сообщение
откуда она бере символы?
getchar() считывает символы из входного потока и в книге об этом написано.
0
Эксперт С++
7175 / 3234 / 80
Регистрация: 17.06.2009
Сообщений: 14,164
28.08.2009, 21:25 3
Все не так
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <stdio.h>
#include <string.h>
 
#define N 4
 
int main( void ) {
 
int i, count;
char *a[N];
 
 
a[0]= "qqq";
a[1]= "werty";
a[2]= "";
a[3]= "";
 
count= 0;
for ( i= 0; i<N; i++ ) { count+= strlen( a[i] ); }
printf( "count=%d\n", count );
return 0;
 
} /* main() */
1
1183 / 468 / 87
Регистрация: 23.06.2009
Сообщений: 6,390
28.08.2009, 22:14  [ТС] 4
Gravity, входной поток это когда я записываю да?...когда записываю наживаю на энтер не рабоает....
odip, а нельзя что то полегче?...
Это ты поменял название темы7это не так...назыает просто подсчет символов

Добавлено через 15 минут
C++
1
2
3
4
5
6
7
double nc=0;
while(getchar()!=EOF){
 
nc++;
 
}
printf("%.0f/n", nc);
вот мой код.....не понимаю в чем дело почему не работает,без ошибок,без предупреждений...
0
Эксперт С++
7175 / 3234 / 80
Регистрация: 17.06.2009
Сообщений: 14,164
28.08.2009, 22:47 5
Вот тебе легче
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <stdio.h>
 
int main( void ) {
 
int i, count;
char a[]= "qwerty";
 
count= 0;
for ( i= 0; ; i++ ) {
    if ( a[i] == '\0' ) { break; }
    count++;
}
printf( "count=%d\n", count );
return 0;
 
} /* main() */
Добавлено через 2 минуты
Копилировать как С.
Код работает.
C
1
2
3
4
5
6
7
8
9
10
11
#include <stdio.h>
 
int main( void ) {
 
double nc= 0.0;
 
while ( getchar() != EOF ) { nc++; }
printf("%f\n", nc);
return 0;
 
} /* main() */
0
1183 / 468 / 87
Регистрация: 23.06.2009
Сообщений: 6,390
28.08.2009, 22:48  [ТС] 6
odip, а почему мой код не работает то?????odip,попробуйэту прогу у себя
0
Эксперт С++
7175 / 3234 / 80
Регистрация: 17.06.2009
Сообщений: 14,164
28.08.2009, 22:49 7
Когда вводишь символы в конце нужно нажать Ctrl-Z + <ENTER>

Добавлено через 54 секунды
В чем заключается - НЕ РАБОТАЕТ ?
0
1183 / 468 / 87
Регистрация: 23.06.2009
Сообщений: 6,390
28.08.2009, 22:49  [ТС] 8
odip,
Цитата Сообщение от odip Посмотреть сообщение
#include <stdio.h>
int main( void ) {
double nc= 0.0;
while ( getchar() != EOF ) { nc++; }
printf("%f\n", nc);
return 0;
} /* main() */
ааааааааааа................у меня проект С++ а не Си
0
Эксперт С++
7175 / 3234 / 80
Регистрация: 17.06.2009
Сообщений: 14,164
28.08.2009, 22:51 9
у меня проект С++ а не Си
Скомпилировал как C++ - тоже работает.
Правильный код
0
1183 / 468 / 87
Регистрация: 23.06.2009
Сообщений: 6,390
28.08.2009, 22:54  [ТС] 10
Цитата Сообщение от odip Посмотреть сообщение
В чем заключается - НЕ РАБОТАЕТ ?
Enter-ом

Добавлено через 1 минуту
Цитата Сообщение от odip Посмотреть сообщение
Ctrl-Z + <ENTER>
не получается.....нажимаю на Z с онтролем выводится ^Z нажимая энтер-ничего
0
Эксперт С++
7175 / 3234 / 80
Регистрация: 17.06.2009
Сообщений: 14,164
28.08.2009, 22:55 11
Enter-ом
Что Enter-ом ?
Нажимаю Enter - переходит на другую строку.
Для завершения ввода нужно набрать EOF.
Для этого нажать Ctrl-Z и потом ENTER.
По ENTER просто не будет завершаться раз условие завершения - EOF.
1
1183 / 468 / 87
Регистрация: 23.06.2009
Сообщений: 6,390
28.08.2009, 22:59  [ТС] 12
odip, когда жму на Ctrl-Z выводится на экран ^Z.......
а нельзя что бы по энтеру завершилось?
0
Эксперт С++
7175 / 3234 / 80
Регистрация: 17.06.2009
Сообщений: 14,164
28.08.2009, 23:01 13
Ctrl-Z нужно набирать в начале строки - в середине оно не берется как EOF.
То есть вводишь так:
auauauauauauau<ENTER>
auauauauua<ENTER>
<Ctrl-Z><ENTER>
Тогда будет прочитано ровно две строки.
а нельзя что бы по энтеру завершилось?
Можно - сделай проверку на ENTER и EOF.
Или только на ENTER.
0
1183 / 468 / 87
Регистрация: 23.06.2009
Сообщений: 6,390
28.08.2009, 23:04  [ТС] 14
Цитата Сообщение от odip Посмотреть сообщение
Можно - сделай проверку на ENTER и EOF.
как?я-полный 0..
Цитата Сообщение от odip Посмотреть сообщение
То есть вводишь так:
auauauauauauau<ENTER>
auauauauua<ENTER>
<Ctrl-Z><ENTER>
все делаю так...ни че го
0
Эксперт С++
7175 / 3234 / 80
Регистрация: 17.06.2009
Сообщений: 14,164
28.08.2009, 23:13 15
Какой у тебя Windows и какой компилятор ?
ничего - это что именно ?
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <stdio.h>
 
int main( void ) {
 
int ch;
double nc= 0.0;
 
for ( ; ; ) {
    ch= getchar();
    if ( ch == EOF ) { printf( "EOF found\n" ); break; }
    if ( ch == '\n' ) { printf( "\\n found\n" ); break; }
    nc++;
}
printf( "%f\n", nc );
return 0;
 
} /* main() */
0
1183 / 468 / 87
Регистрация: 23.06.2009
Сообщений: 6,390
28.08.2009, 23:21  [ТС] 16
Цитата Сообщение от odip Посмотреть сообщение
ничего - это что именно ?
я же сказал
^Z^Z^Z^Z
Цитата Сообщение от odip Посмотреть сообщение
Какой у тебя Windows и какой компилятор ?
XP vStudio08
0
Эксперт С++
7175 / 3234 / 80
Регистрация: 17.06.2009
Сообщений: 14,164
28.08.2009, 23:23 17
я же сказал
^Z^Z^Z^Z
Читай внимательно - нужно в начале строки один раз нажать Ctrl+Z, сразу после этого нажать ENTER.
Попробуй.

Добавлено через 39 секунд
На худой конец я там примерчик с ENTER и EOF написал.
1
1183 / 468 / 87
Регистрация: 23.06.2009
Сообщений: 6,390
29.08.2009, 09:59  [ТС] 18
всё odip, получилось спасибо...а нельзя ли вместо getchar масив написать..без всяких других методов
0
Эксперт С++
7175 / 3234 / 80
Регистрация: 17.06.2009
Сообщений: 14,164
29.08.2009, 10:03 19
Для вычисления длины строки есть стандартная и быстрая функция strlen().
int a= strlen( "qwerty" );
1
1183 / 468 / 87
Регистрация: 23.06.2009
Сообщений: 6,390
29.08.2009, 10:12  [ТС] 20
odip, спасибо большое, а тут А это счетчик да как понял?

Добавлено через 5 минут
odip, всё правильно!!!!Гиганткое спасибо!!!!!! а вот мой код
C
1
2
3
4
char s[256];
cin>>s;
int a=strlen(s);
cout<<"\n"<<a<<"\n";
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
29.08.2009, 10:12
Помогаю со студенческими работами здесь

Подсчёт слов в строке, символов в словах строки
Помогите, пожалуйста, срочно С консоли вводится строка слов. Необходимо проанализировать строку и...

Подсчет цифр, символов-разделителей и прочих символов в массиве
Здравствуйте. В учебнике дан код: #include &lt;stdio.h&gt; /* подсчет цифр, символов-разделителей и...

Подсчёт слов в строке. Подсчёт символов в словах строки
Начал изучение строк в С++. Решая задачу по поиску количества строк и количеству указанных символов...

Подсчет числа символов указанного типа в любой строке символов на SHELL
Здравствуйте)) :) Помогите, пожалуйста , разработать программу подсчета числа символов указанного...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru