Другие языки программирования и технологии

Помогите пожалуйста с написанием программы на С

Даны две строки длиной до 80 символов.

Определить,
в какой строке больше цифр: в первой или во второй (вывести соответствующее
сообщение) .



Описать
в виде отдельной функции определение числа цифр в заданной строке.
#include <stdio.h>
#define BUFFER 81
#define SIZE 80
int digits(const char*);
int main() {
char first[BUFFER], second[BUFFER];
printf(" First: ");
gets_s(first, SIZE);
printf(" Second: ");
gets_s(second, SIZE);
if (digits(first) == digits(second)) printf(" First = Second");
else if (digits(first) > digits(second)) printf(" First > Second");
else printf(" Second > First");
printf("\n");
fflush(stdin);
getchar();
return 0;
}
int digits(const char* str) {
int n = 0, i = 0;
do if (isdigit(str[i])) ++n; while (str[++i]);
return n;
}
Иван Евтушенко
Иван Евтушенко
51 744
Лучший ответ
#include <cstdio>
#include <cstring>
using namespace std;

size_t digits_len(const char* s) {
size_t n = 0u;
while((s = strpbrk(s, "0123456789")) != NULL){
++n;
++s;
}
return n;
}

int main(void){
char s1[80];
char s2[80];

strcpy(s1, "[3]45678=9");
strcpy(s2, "digit 12388");

size_t n1 = digits_len(s1);
size_t n2 = digits_len(s2);

if(n1 > n2)
puts("s1 > s2");
else if(n1 < n2)
puts("s1 < s2");
else
puts("s1 == s2");
getchar();
return 0;
}
ТИ
Ты И Я
11 372
#include <iostream>
using namespace std;
int main()
{
setlocale(LC_ALL, "RUS");
char ar1[80] = { '\0' };
char ar2[80] = { '\0' };
cin >> ar1;
cin >> ar2;
int a1 = 0, a2 = 0;
for (int i = 0; ar1[i] != '\0' || ar2[i] != '\0'; i++)
{
if (ar1[i] != '\0') a1++;
if (ar2[i] != '\0')a2++;
}
if (a1>a2)cout << "В первой строке больше";
else cout << "Во второй строке больше";
system("pause");
return 0;
}
Gennadiy .
Gennadiy .
1 200