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

(СИ)Требуется выделить в строке-предложении 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;
}

Показать ответ
Ответ:
daniilf02mail
daniilf02mail
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-бота