输入字符的分类和Byte类型数字的比较

本文介绍了一个用于在C/C++中实现字符比较的函数及一个简单的字符输入统计程序。字符比较函数通过查找指定的字节序列来判断其是否存在于目标字符串中,并返回首次出现的位置。此外,还提供了一个统计程序,用于统计用户输入中的字母、数字、空白字符及其他字符的数量。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#include <stdio.h>
#include <string.h>
#include <windows.h>
BOOL charcmp(byte by[],int len,char ch[],int lensc,int &num)
{
bool rtn = FALSE;
int n = 0;
bool isfirst = TRUE;
int j = 0;
if ((len != 0)&&(len < lensc))
{
for (int i = 0; i<= lensc-len;i++)
{
for(j = 0;j<len;j++)
{
if ( ch[i+j] !=(char)by[j])
{
rtn = FALSE;
isfirst = true;
n = 0;
num = -1;
break;
}
else
{
rtn = TRUE;
if (isfirst)
{
n = i;
num = i;
isfirst = FALSE;
}
}
}
if (len <= j)
{
return rtn;
}
}
}
else
{
rtn = FALSE;
}
return rtn;
}
void main()
{
char ch[500];
memset(ch,0,500);
byte by[8] = {0};
by[0] = 0X01;
by[1] = 0x04;
by[2] = 0x00;
by[3] = 0x00;
by[4] = 0x00;
by[5] = 0x08;
by[6] = 0xF1;
by[7] = 0xCC;
byte by1[8] = {0};
by1[0] = 0X0A;
by1[1] = 0x04;
by1[2] = 0x00;
by1[3] = 0x02;
by1[4] = 0x00;
by1[5] = 0x08;
by1[6] = 0x51;
by1[7] = 0x77;
byte by2[8] = {0};
by2[0] = 0X03;
by2[1] = 0x04;
by2[2] = 0x01;
by2[3] = 0x00;
by2[4] = 0x00;
by2[5] = 0x10;
by2[6] = 0xF1;
by2[7] = 0xD8;
byte by3[2] = {0};
by2[0] = 0X11;
by2[1] = 0x04;
memcpy(ch,by,8);
memcpy(ch+8,by1,8);
memcpy(ch+16,by2,8);
int num = -1;
bool flg = charcmp(by,8,ch,24,num);
if (flg)
{
int l = num;
printf("%d\n",num);
}
flg = charcmp(by1,8,ch,24,num);
if (flg)
{
int m = num;
printf("%d\n",num);
}
flg = charcmp(by2,8,ch,24,num);
if (flg)
{
int n = num;
printf("%d\n",num);
}
flg = charcmp(by3,8,ch,24,num);
if (flg)
{
int p = num;
printf("%d\n",num);
}
}


#include<iostream>

using namespace std;


int main()
{
    int state = 0;
    int nch = 0,nspace = 0,nother = 0,ndigit = 0;
    int ch;
    while((ch = getchar()) != EOF && ch != '\n')
    {
if(isalpha(ch))
   nch++;
else if(isdigit(ch))
   ndigit++;
else if(isspace(ch))
   nspace++;
else
   nother++;


    }
    cout << "数字: " << ndigit << endl;
    cout << "空格: " << nspace << endl;
    cout << "字母: " << nch << endl;
    cout << "其他: " << nother << endl;
    return 0;

}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值