Поиск цифр в строке - C (СИ)
Формулировка задачи:
Добрый день! Сейчас сижу и никак не могу понять почему у меня не работает как положено мой код:
Помогите пожалуйста разобраться
И еще один момент. Для того, чтобы не задавать в самом начале размер строки что надо делать?
Как только я убираю char s[255] и ставлю на его место char s - у меня показывается вот такая штука:
#include "stdafx.h" #include "iostream" #include "string.h" #include "cstring" using namespace std; int _tmain(int argc, _TCHAR* argv[]) { setlocale(LC_ALL,"Russian"); char s[255]; FF: cout<<"Введите строку: "; cin>>s; int h; // Опр. есть ли цифра в строке, если есть, то 1 int w; // количество цифр w=0; h=0; for (int i=0;i<256;i++) { if ((s[i]=='0') | (s[i]=='1') | (s[i]=='2') | (s[i]=='3') | (s[i]=='4') | (s[i]=='5') | (s[i]=='6') | (s[i]=='7') | (s[i]=='8') | (s[i]=='9')) { h=1; w++;}; }; if (h==1) cout<<"Данная строка содержит цифры. Количество: "<<w; else cout<<"Данная строка не сод. цифр \n"; h=0; w=0; char y; cout<<"\nПродолжить? (да - y)"; cin >> y;cout<<"\n"; if (y=='y') goto FF; else exit; // system("pause"); return 0; }
Решение задачи: «Поиск цифр в строке»
textual
Листинг программы
#include <iostream> #include <cstring> #include <cctype> using namespace std; int main() { setlocale(LC_ALL, "Russian"); char s[255]; int h; // Опр. есть ли цифра в строке, если есть, то 1 int w; // количество цифр char y = 'y'; while (y == 'y') { cout << endl << "Введите строку: "; cin >> s; w = 0; h = 0; for (unsigned i = 0; i < strlen(s); i++) { if (('0' <= s[i]) && (s[i] <= '9')) { h = 1; w++; }; }; if (h == 1) { cout << "Данная строка содержит цифры. Количество: " << w << endl; } else { cout << "Данная строка не сод. цифр" << endl; } cout << endl << "Продолжить? (да - y): "; cin >> y; } return 0; }
Объяснение кода листинга программы
- Подключение необходимых библиотек для работы с локалью, вводом/выводом и строками
- Установка русской локали
- Объявление переменной типа char для хранения строки
- Объявление двух переменных типа int: h (для проверки наличия цифр в строке), w (для подсчета количества цифр)
- Объявление переменной типа char для проверки условия продолжения программы
- Ввод строки с помощью функции cin
- Очистка переменных h и w перед каждой проверкой строки
- Проверка каждого символа строки на предмет принадлежности к цифрам
- Если символ является цифрой, то увеличение значения переменной w и установка значения h равным 1
- Вывод сообщения о количестве цифр в строке
- Если значение переменной h равно 1, то вывод сообщения о наличии цифр в строке и их количестве
- Если значение переменной h не равно 1, то вывод сообщения об отсутствии цифр в строке
- Ввод символа для продолжения программы с помощью функции cin
- Повторение шагов с 6 по 13 до тех пор, пока пользователь не введет
n
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д