一道关于结构体比较函数的问题

可有偿,可议价!

题目描述:

统计字符串信息
时间限制:1.0s 内存限制:256.0MB
问题描述
  输入有两个字符串,统计出字符串的长度,空格个数,字母个数和数字个数,放入两个结构体中。用一个函数对两个结构体进行比较。判断4个统计量是否相同。
输入格式
  输入有两行。各为一个字符串。
输出格式
  输出有4行。第一行输出字符串长度是否相等,相等输出"True",不相等输出“False”。第二行输出字符串空格个数是否相等,相等输出"True",不相等输出“False”。第三行输出字符串字母(大小写均算)个数是否相等,相等输出"True",不相等输出“False”。第一行输出字符串数字个数是否相等,相等输出"True",不相等输出“False”。
样例输入
2 apples
Try this
样例输出
True
True
False
False
数据规模和约定
  每个字符串长度不超过2000。
  每个字符串只有数字,字母,空格,不含其它字符。
  要求用结构体实现每个字符串统计量。用一个函数调用两个结构体比较。

我遇到的问题:

一道关于结构体比较函数的问题,谁能帮蒟蒻看看?
如果不使用结构体,只能拿一半分

这是代码,可以试一下,可行还请采纳:
用了 C++ 结构体来统计两个字符串的各种信息(长度、空格个数、字母个数、数字个数),并使用了函数来比较这些信息是否相同。

首先,使用两个结构体,一个结构体存储每个字符串的信息,结构体内有四个变量:len(存储字符串长度)、space(存储字符串中空格的个数)、alpha(存储字符串中字母的个数)、digit(存储字符串中数字的个数)。然后,循环读入两个字符串,并对每个字符串进行遍历,统计这些信息。

最后,使用函数对这两个结构体进行比较,判断它们的信息是否相同,并在输出中呈现出来。

该代码的基本思路是:读入字符串,统计信息,比较信息,输出结果

#include <iostream>
#include <cstring>
#include <cctype>

using namespace std;

struct StrInfo
{
    int length, space, letter, digit;
};

bool compareStrInfo(StrInfo a, StrInfo b)
{
    return a.length == b.length && a.space == b.space && a.letter == b.letter && a.digit == b.digit;
}

StrInfo countStrInfo(char str[])
{
    StrInfo info;
    info.length = strlen(str);
    for (int i = 0; i < info.length; i++)
    {
        if (isspace(str[i])) info.space++;
        else if (isalpha(str[i])) info.letter++;
        else if (isdigit(str[i])) info.digit++;
    }
    return info;
}

int main()
{
    char str1[2010], str2[2010];
    cin.getline(str1, 2010);
    cin.getline(str2, 2010);
    StrInfo info1 = countStrInfo(str1);
    StrInfo info2 = countStrInfo(str2);
    cout << (compareStrInfo(info1, info2) ? "True" : "False") << endl;
    cout << (info1.space == info2.space ? "True" : "False") << endl;
    cout << (info1.letter == info2.letter ? "True" : "False") << endl;
    cout << (info1.digit == info2.digit ? "True" : "False") << endl;
    return 0;
}


有偿直接加悬赏就行了

typedef struct _total
{
    int len;
    int spacelen;
    int charlen;
    int numlen;
}total;