Форум программистов, компьютерный форум, киберфорум
C для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.85/13: Рейтинг темы: голосов - 13, средняя оценка - 4.85
0 / 0 / 1
Регистрация: 20.05.2013
Сообщений: 18
1

Вывести количество цифр в строке

03.06.2013, 18:11. Показов 2622. Ответов 9
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Нужно вывести количество цифр в строке. Не понимаю в чем у меня ошибка, программа некорректно работает, подскажите пожалуйста

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include<stdio.h>
#include <string.h>
int main () {
  int g=0, i, j;
  char n[]="0 1 2 3 4 5 6 7 8 9";
  char* k=" ";
  gets (k);
  for (i=0; k[i]!='\0'; i++)
  {
    for(j=0; n[j]!='\0';j++)
    {
      if (k[i]==n[j])
    g++;
    }
  }
  printf("%d",g);
  return 0;
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
03.06.2013, 18:11
Ответы с готовыми решениями:

Определить и вывести на экран количество цифр в строке
Необходимо разработать программу согласно варианту задания. Данные в программу передаются через...

Определить количество цифр в строке символов.
строка. Определить количество цифр в строке символов.

Количество цифр и чисел в символьной строке S
Добрый день Мне надо написать програму которая будет вычеслять количество цифр и чисел в...

Подсчитать количество содержащихся в строке цифр
Дана строка. Подсчитать количество содержащихся в ней цифр. Язык С

9
Модератор
Эксперт PythonЭксперт JavaЭксперт CЭксперт С++
12460 / 7484 / 1754
Регистрация: 25.07.2009
Сообщений: 13,763
03.06.2013, 19:30 2
Цитата Сообщение от Jesis_in_Vegas Посмотреть сообщение
Не понимаю в чем у меня ошибка
Вот в этом:
Цитата Сообщение от Jesis_in_Vegas Посмотреть сообщение
char* k=" ";
замените на
C
1
char k[256];
и будет Вам счастье... По крайней мере до тех пор, пока строку длиннее 255 символов не введёте...

Цитата Сообщение от Jesis_in_Vegas Посмотреть сообщение
char n[]="0 1 2 3 4 5 6 7 8 9";
И это не правильно, так программа ещё и кучу пробелов насчитает вместе с цифрами.

Ну и раз уж
Цитата Сообщение от Jesis_in_Vegas Посмотреть сообщение
#include <string.h>
то
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <stdio.h>
#include <string.h>
 
int main(void) {
    char buf[BUFSIZ], * p;
    int cnt;
    
    while ( printf("String: ") && fgets(buf, BUFSIZ, stdin) && *buf != '\n' ) {
        cnt = 0;
        for ( p = strpbrk(buf, "0123456789"); p; p = strpbrk(p + 1, "0123456789") )
            ++cnt;
        printf("%d digits.\n", cnt);
    }
    
    return 0;
}
2
408 / 227 / 43
Регистрация: 10.02.2013
Сообщений: 780
03.06.2013, 19:31 3
Цитата Сообщение от easybudda Посмотреть сообщение

И это не правильно, так программа ещё и кучу пробелов насчитает вместе с цифрами.
можно так
C
1
char n[]={1,2,3,4,5,6,7,8,9,0}
1
Модератор
Эксперт PythonЭксперт JavaЭксперт CЭксперт С++
12460 / 7484 / 1754
Регистрация: 25.07.2009
Сообщений: 13,763
03.06.2013, 19:33 4
Цитата Сообщение от shurikspk Посмотреть сообщение
можно так
Нет, так нельзя. '1' != 1
1
0 / 0 / 1
Регистрация: 20.05.2013
Сообщений: 18
03.06.2013, 20:48  [ТС] 5
спасибо большое!! проглядела как обычно мелочь всякую)

Добавлено через 10 минут
Цитата Сообщение от easybudda Посмотреть сообщение
C
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <stdio.h>
#include <string.h>
int main(void) {
    char buf[BUFSIZ], * p;
    int cnt;
    while ( printf("String: ") && fgets(buf, BUFSIZ, stdin) && *buf != '\n' ) {
        cnt = 0;
        for ( p = strpbrk(buf, "0123456789"); p; p = strpbrk(p + 1, "0123456789") )
            ++cnt;
        printf("%d digits.\n", cnt);
    }
    return 0;
}
ого. вот этот код программы я совсем не понимаю. А тот, что я исправила работает теперь, большое спасибо)
0
Эксперт С++
4267 / 2241 / 203
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
03.06.2013, 21:06 6
C
1
2
3
4
int Count(char *s)
{
   return *s ? !!isdigit(*s) + Count(s + 1) : 0;
}
0
0 / 0 / 1
Регистрация: 20.05.2013
Сообщений: 18
03.06.2013, 21:41  [ТС] 7
осталась только графика, но это мне никто не поможет
0
81 / 81 / 33
Регистрация: 03.03.2013
Сообщений: 311
03.06.2013, 22:20 8
Цитата Сообщение от Thinker Посмотреть сообщение
C
1
2
3
4
int Count(char *s)
{
   return *s ? !!isdigit(*s) + Count(s + 1) : 0;
}
Голова =)
0
Модератор
Эксперт PythonЭксперт JavaЭксперт CЭксперт С++
12460 / 7484 / 1754
Регистрация: 25.07.2009
Сообщений: 13,763
04.06.2013, 00:08 9
Цитата Сообщение от Jesis_in_Vegas Посмотреть сообщение
осталась только графика
какая такая графика?
0
0 / 0 / 1
Регистрация: 20.05.2013
Сообщений: 18
04.06.2013, 00:47  [ТС] 10
easybudda, да в си пирамиду нарисовать увеличивать ее и сжимать, перемещать итд, но я уже разобралась)
0
04.06.2013, 00:47
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
04.06.2013, 00:47
Помогаю со студенческими работами здесь

Найти в строке число, содержащее наименьшее количество цифр
Здравствйте. Есть такая задача: Составить программу, которая выделяет отдельные целые числа из...

Как в строке определить наибольшее количество цифр, идущих подряд?
Ввести строку с клавиатуры.Определить наибольшее количество цифр, идущих подряд .

Подсчитать количество чисел (число - последовательность цифр) в данной строке
Написать программу для решения поставленной задачи Само задание: Дана строка символов....

Определить в каждой строке количество чисел, сумма цифр которых делятся на 5
В общем нужно составить программу на С, которая для заданной матрицы определит в каждой строке...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru