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

оникс999 оникс999    1   13.12.2021 12:05    1

Ответы
sohibjon457 sohibjon457  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;

}

ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика