林惜城


私信TA

用户名:reminder

访问量:27530

签 名:

等  级
排  名 94
经  验 8480
参赛次数 0
文章发表 95
年  龄 0
在职情况 学生
学  校 西安电子科技大学
专  业

  自我简介:

哈姆


解题思路:

用英文、数字等对应的ASCii码来解决,不要string一个字符串,直接char一个字符型数组,然后输入字符串,后续针对每一个字符进行判断就很方便。

注意事项:

不#include<cstring>的话过不了编译,会告诉你[Error] 'strlen'was not declared in this scope,不过在本地编译器上是正常编译的。

另外cin和scanf()遇到空格直接当作输入结束了,所以要用cin.get()来接收带空格的字符串。


参考代码:

#include <iostream>
#include <cstring>

using namespace std;

int main() {
	int letter = 0;
	int digit = 0;
	int space = 0;
	int other = 0;
	char str[200];
	cin.get(str, 200); //cin和scanf遇到空格当作结束
	int len = strlen(str);
	for(int i = 0; i < len; i++) {
		if((str[i] >= 65 && str[i] <= 90) || (str[i] >= 97 && str[i] <= 122)) {
			letter++;
		} else if(str[i] >= 48 && str[i] <= 57) {
			digit++;
		} else if(str[i] == 32) {
			space++;
		} else {
			other++;
		}
	}
	cout << letter << " " << digit << " " << space << " " << other << endl;
	return 0;
}


 

0.0分

6 人评分

看不懂代码?想转换其他语言的代码? 或者想问其他问题? 试试问问AI编程助手,随时响应你的问题:

编程语言转换

万能编程问答  

代码解释器

代码纠错

SQL生成与解释

  评论区

for(int i = 0; i < len; i++) {
        if((str[i] >= 65 && str[i] <= 90) || (str[i] >= 97 && str[i] <= 122)) {
            letter++;
        } else if(str[i] >= 48 && str[i] <= 57) {
            digit++;
        } else if(str[i] == 32) {
            space++;
        } else {
            other++;
        }
    }请问这个for循坏是什么意思呀
2022-04-07 00:42:51
  • «
  • 1
  • »