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

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

Восстановить пароль Регистрация
 
женя777
0 / 0 / 0
Регистрация: 10.12.2012
Сообщений: 37
26.10.2013, 22:08     Поиск цифр в массиве char #1
Задание: вводится строка из любых символов в ней ищутся цифры которые есть и выводятся только они непонимаю в чем ошибка ничего не выводит подскажите.
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;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
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
Ответ Создать тему
Опции темы

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