在C++中输入一串字符,统计其中的英文字母,数字符号,其他字符的个数,空格不在其中
#include<stdio.h>main(){inta,b,c;/*a,b,c分别存放字母的个数,数字符号的个数,其它字符的个数*/charch;/*ch存放输入的字符...
#include <stdio.h>
main( )
{
int a,b,c; /*a,b,c分别存放字母的个数,数字符号的个数,其它字符的个数*/
char ch; /*ch存放输入的字符串中的一个字符*/
printf("本程序统计输入字符串中各类字符的个数\n");
a=0;b=0;c=0; /*字母、数字符号和其它字符的个数清0*/
printf("输入以回车结束的字符串:");
scanf("%c", &ch);
while(ch!='\n')
{ scanf("%c", &ch);
{if((ch>=97&&ch<=122||ch>=65&&ch<=90)) a++;
else if (ch>=48&&ch<=57) b++;
else if ((ch>=33&&ch<=47||ch>=58&&ch<=64)) c++;}
}
printf("字母个数:%d\n数字符号个数:%d\n其它字符个数:%d \n", a,b,c);
}
问题出在哪里了,当输入字符串a1b2c3!@#$时,字母字符的个数是2,谢谢指教 展开
main( )
{
int a,b,c; /*a,b,c分别存放字母的个数,数字符号的个数,其它字符的个数*/
char ch; /*ch存放输入的字符串中的一个字符*/
printf("本程序统计输入字符串中各类字符的个数\n");
a=0;b=0;c=0; /*字母、数字符号和其它字符的个数清0*/
printf("输入以回车结束的字符串:");
scanf("%c", &ch);
while(ch!='\n')
{ scanf("%c", &ch);
{if((ch>=97&&ch<=122||ch>=65&&ch<=90)) a++;
else if (ch>=48&&ch<=57) b++;
else if ((ch>=33&&ch<=47||ch>=58&&ch<=64)) c++;}
}
printf("字母个数:%d\n数字符号个数:%d\n其它字符个数:%d \n", a,b,c);
}
问题出在哪里了,当输入字符串a1b2c3!@#$时,字母字符的个数是2,谢谢指教 展开
2个回答
展开全部
#include <string>
#include <locale>
#include <iostream>
using namespace std;
// 个数
void GetUpperCount(char * input,
int & upperCount,
int & lowerCount,
int & numCount)
{
for (int i = 0; i < strlen(input); i++)
{
// 统计大写字母个数
if (isupper(input[i]))
{
upperCount++;
}
// 统计小写字母个数
else if (islower(input[i]))
{
lowerCount++;
}
// 统计数字个数
else if (isdigit(input[i]))
{
numCount++;
}
}
}
int main()
{
char szInput[100] = {0};
cout << "请输入字符串: " << endl;
cin >> szInput;
int upperCount = 0;
int lowerCount = 0;
int numCount = 0;
GetUpperCount(szInput, upperCount, lowerCount, numCount);
cout << "大写字母个数: "<< upperCount << endl;
cout << "小写字母个数: "<< lowerCount << endl;
cout << "数字个数:"<< numCount << endl;
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |