В
Все
М
Математика
О
ОБЖ
У
Українська мова
Х
Химия
Д
Другие предметы
Н
Немецкий язык
Б
Беларуская мова
М
Музыка
Э
Экономика
Ф
Физика
Б
Биология
О
Окружающий мир
У
Українська література
Р
Русский язык
Ф
Французский язык
П
Психология
О
Обществознание
А
Алгебра
М
МХК
Г
География
И
Информатика
П
Право
А
Английский язык
Г
Геометрия
Қ
Қазақ тiлi
Л
Литература
И
История

(СИ)Требуется выделить в строке-предложении s все слова, разделенные символами-разделителями «_.,;:\n\t!?» и напечатать слова, содержащие хотя бы одну цифру. Вот, что я написала, но код не работает: (возможно стоит использовать функцию isdigit()
#define _CRT_SECURE_NO_WARNINGS
#define DELIMITERS ".,:;\n\t!?"
#include
#include
#include
#include
#include
using namespace std;

int main()
{
setlocale(LC_ALL, "rus");
char s[100];
char* word;
int i, k=0;
int(isdiget(int c));
fgets(s, 100, stdin);
word = strtok(s, DELIMITERS);
while (word != NULL) {
puts(word);
word = strtok(NULL, DELIMITERS);
}
for (i = 0; s[i]; i++) {
char c;
c = s[i];
if( (c > 0) && (c < 9)) {
k++;
}
}
cout << k;
return 0;
}

Показать ответ
Ответ:
PolinaEpifanova
PolinaEpifanova
01.02.2022 20:27

/*Твой код написан на С++, поэтому я так понимаю, что ответ нужен также на нём.*/

#define _CRT_SECURE_NO_WARNINGS

#include <iostream>

#include <string>

#define SIZE 256

int main() {

   const char* DELIMITERS = "_.,;:\n\t!?";        

   char S[SIZE] = "Hello, my2. friend_ia2m?hh2";    

   char* ptr = 0;  

   ptr = strtok(S, DELIMITERS);

   while (ptr) {                

       for (int i = 0; i < strlen(ptr); i++) {

           if (isdigit(ptr[i]))

               std::cout << ptr << "\n";

       }

       ptr = strtok(0, DELIMITERS);    

   }

   return 0;

}

0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота