【发布时间】:2014-12-09 14:36:57
【问题描述】:
抱歉,我使用的是古代编译器
#include <iostream.h>
#include <conio.h>
#include <ctype.h>
void main()
{
char s[6] = "mOh1t*";
int u = 0 , l=0 , d=0 , sp=0 , t = 0;
for (int x = 0 ; s[x] ; x++)
{
if (isupper(s[x]))
u++;
else if(islower(s[x]))
l++;
else if (isdigit(s[x]))
d++;
t++;
}
sp = t - (u+l+d);
cout<<"t:"<<t;
cout<<"u:"<<u;
cout<<"l:"<<l;
cout<<"d:"<<d;
cout<<"sp:"<<sp;
getch();
}
上面的代码清楚地统计了一个字符串中的字母(大小写)个数、数字个数和特殊字符个数。
我想知道是否可以不使用 使用 if 语句/三元运算符/switch case。 如果是的话,我可以得到线索吗?
感谢 HoosierEE 的回答
更新:是否可以在不使用内置函数的情况下与 hoosierEE 的答案相同?
- 想要学习的 C++ 新手
【问题讨论】:
-
使用 'switch' 或 '?:',但为什么?
-
如果您真的想学习,请获取更新的编译器并学习现代标准。
-
@crashmstr 哈哈 :) 我想我应该升级了!
-
@Mohit_Bhasi 如果您使用的是 Turbo C++ 之类的东西,C++ 语言已经发生了显着变化(请注意,我在 20 多年前使用的是 Turbo C++)。
-
@crashmstr 是的,我现在正在使用它,肯定会升级。感谢您的建议:)