Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
женя777
0 / 0 / 0
Регистрация: 10.12.2012
Сообщений: 37
#1

Поиск цифр в массиве char - C++

26.10.2013, 22:08. Просмотров 949. Ответов 4
Метки нет (Все метки)

Задание: вводится строка из любых символов в ней ищутся цифры которые есть и выводятся только они непонимаю в чем ошибка ничего не выводит подскажите.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#define _CRT_SECURE_NO_WARNINGS
#include <string.h>
#include <iostream>
#include <conio.h>
#define size 50
 
int main(){
    char st[size];
    printf("vvedite stroky: ");
    scanf("%s",st);
    int n=strlen(st);
    for(int i=0;i<n;i++)
        for(int j=0;j<10;j++){
            if(st[i]==j) 
                printf("%d",j);}
    _getch();
    return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.10.2013, 22:08     Поиск цифр в массиве char
Посмотрите здесь:

C++ Сортировка цифр в строке типа char
C++,шаблон,специализация,поиск самой большой строки в массиве указателей на char C++
C++ Преобразование из int в char в массиве (не обычно)
C++ Шестнадцатеричные числа в массиве unsigned char
C++ Поиск слова в массиве символов char
JPEG в char массиве C++
Русские символы в массиве char C++
C++ Интерполирующий поиск в массиве структур типа char
Заменить звездочками совпадения в массиве char C++
Поиск нескольких цифр в массиве C++
Заполнение двухмерного массива типа char символами цифр C++
Вычислить математическое выражение в массиве char C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ViktorKozlov
133 / 125 / 2
Регистрация: 13.12.2012
Сообщений: 293
26.10.2013, 22:14     Поиск цифр в массиве char #2
C++
1
if(st[i]==j)
Нужно делать не так, потому что здесь сравниваются коды ASCII символов, а у цифр они не от 1 до 10.
Вот так лучше
C++
1
2
3
for(int i=0;i<n;i++)
            if(st[i]>='0' || st[i]<='9') 
                printf("%d",j);
DirectX
 Аватар для DirectX
23 / 17 / 6
Регистрация: 07.10.2013
Сообщений: 47
26.10.2013, 22:16     Поиск цифр в массиве char #3
Цитата Сообщение от женя777 Посмотреть сообщение
if(st[i]==j)
попробуй вот так if (st[i] - '0' == j)
женя777
0 / 0 / 0
Регистрация: 10.12.2012
Сообщений: 37
26.10.2013, 22:31  [ТС]     Поиск цифр в массиве char #4
Цитата Сообщение от DirectX Посмотреть сообщение
попробуй вот так if (st[i] - '0' == j)
спасибо заработало, а не подскажешь еще почему именно так просто я не очень шарю.
ViktorKozlov
133 / 125 / 2
Регистрация: 13.12.2012
Сообщений: 293
26.10.2013, 23:03     Поиск цифр в массиве char #5
Потому что ASCII код символа '0' - 48, соответственно, коды чисел лежат в диапазоне 48-57 (57 - ASCII код символа '9'). У вас же идет сравнение с ASCII кодами от 0 до 9, но не с самими символами, которые представляют числа. Ознакомьтесь с ASCII таблицей (ищется запросом в google), и все сразу станет понятно
Yandex
Объявления
26.10.2013, 23:03     Поиск цифр в массиве char
Ответ Создать тему
Опции темы

Текущее время: 09:56. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru