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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 05.05.2011, 20:06   #1
Дмитрий Алексеев
 
Регистрация: 17.01.2011
Сообщений: 9
Восклицание подсчитать кол-во цифр С++

Дан текст произвольной длины, оканчивающийся точкой с запятой. Подсчитать количество цифр в тексте.
Есть такой набросок:


Код:
#include <iostream.h>
#include <string.h>
int main()
{
int chislo=0;                                             //считает количество цифр
int strl;                                                    //содержит длину строки
char stroka[512];                                      //хранит введенную строку
cin.getline(stroka,sizeof(stroka),' ;');           //сохраняет введенную строку в переменную strl
strl=strlen(stroka);                                   //определяем длину строки
for (int i=0;i<strl;i++){                             //запускаем цикл и пробегаем каждый символ строки
switch(stroka[i]){                                     //если символ строки совпадает с одной из цифр, то
case'0':case'1':case'2':case'3':case'4':case'5':case'6':case'7':case'8 ':case'9': chislo++;break;    //увеличиваем chislo на единицу
default:break;                                         //если не совпало - увеличиваем i на единицу и переходим к след символу в строке
}
}                                                          //и так до последнего символа

cout<<"schislo= "<<chislo;                     //выводим кол-во цифр в строке
return 0;                                               //конец программы
}
но надо другим методом как-то так

Код:
if(str[i]>="0" && str[i]<="9")
не могу сообразить как..но думаю как-то заменив

Код:
case

Последний раз редактировалось Дмитрий Алексеев; 05.05.2011 в 20:23. Причина: изменения кода
Дмитрий Алексеев вне форума Ответить с цитированием
Старый 05.05.2011, 20:33   #2
eoln
Старожил
 
Аватар для eoln
 
Регистрация: 26.04.2008
Сообщений: 2,645
По умолчанию

Верной дорогой идёте, товарищ
Код:
...
strl=strlen(stroka); //определяем длину строки
for (int i=0;i<strl;i++)
if (stroka[i]>='0'&& stroka[i]<='9') chislo++;
cout<<"schislo= "<<chislo; //выводим кол-во цифр в строке
...
eoln вне форума Ответить с цитированием
Старый 05.05.2011, 20:35   #3
malinoff
Форумчанин
 
Аватар для malinoff
 
Регистрация: 08.01.2010
Сообщений: 205
По умолчанию

*ответ дан*
Если помог - кликни на значок весов под аватаром.
malinoff вне форума Ответить с цитированием
Старый 05.05.2011, 20:59   #4
Дмитрий Алексеев
 
Регистрация: 17.01.2011
Сообщений: 9
По умолчанию итого получается

Код:
#include <iostream.h>
#include <string.h>

int main(){
int chislo=0;                                             //считает количество цифр
int strl;                                                    //содержит длину строки
char stroka[512];                                      //хранит введенную строку
cin.getline(stroka,sizeof(stroka),' ;');           //сохраняет введенную строку в переменную strl
strl=strlen(stroka);                                   //определяем длину строки
for (int i=0;i<strl;i++){                             //запускаем цикл и пробегаем каждый символ строки
switch(stroka[i]){                                     //если символ строки совпадает с одной из цифр, то
strl=strlen(stroka);                                  //определяем длину строки
for (int i=0;i<strl;i++)
if (stroka[i]>='0'&& stroka[i]<='9') chislo++;
cout<<"schislo= "<<chislo;                       //выводим кол-во цифр в строке
return 0;                                               //конец программы
}
Дмитрий Алексеев вне форума Ответить с цитированием
Старый 06.05.2011, 11:28   #5
eoln
Старожил
 
Аватар для eoln
 
Регистрация: 26.04.2008
Сообщений: 2,645
По умолчанию

о_О Я же специально включил в код крайние строки, чтобы можно было видеть что заменять
Код:
int main()
{
int chislo=0; //считает количество цифр
int strl; //содержит длину строки
char stroka[512]; //хранит введенную строку
cin.getline(stroka,sizeof(stroka),' ;'); //сохраняет введенную строку в переменную strl
strl=strlen(stroka); //определяем длину строки
for (int i=0;i<strl;i++)
if (stroka[i]>='0'&& stroka[i]<='9') chislo++;
cout<<"schislo= "<<chislo; //выводим кол-во цифр в строке
return 0; //конец программы
}
eoln вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Подсчитать кол-во файлов в папке! sashahttp Win Api 1 01.04.2010 12:38
макрос - подсчитать для каждой строки кол-во ячеек с «+», кол-во ячеек с «-» Vadim_abs Microsoft Office Excel 36 14.07.2009 12:08
подсчитать кол-во букв Naposaram Общие вопросы Delphi 3 10.03.2009 16:17
подсчитать кол-во гласных FireHawK Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 2 22.11.2008 19:22