(СИ)Требуется выделить в строке-предложении 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;
}
/*Твой код написан на С++, поэтому я так понимаю, что ответ нужен также на нём.*/
#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;
}