c++下列两倒题目第一道使用for循环,第二道不会写

 

代码如下,如有帮助,请采纳一下,谢谢。

#include <iostream>
#include <string>
using namespace std;
void fun()
{
	int i;
	string buf;
	while(true)
	{
		cout <<"请输入字符:";
		getline(cin,buf);  //读取一行字符
		for (i = 0; i < buf.length();i++)
		{
			if(buf[i] >= 'a' && buf[i] <= 'z')
			{
				//do nothint
				
			}else if (buf[i] >= 'A' && buf[i] <= 'Z')
			{
				cout <<"输入的字符含有大写字母。";
				break;
			}else if (buf[i] >= '0' && buf[i] <= '9')
			{
				cout <<"输入的字符含有数字。";
				break;
			}else if (buf[i] <= 31 || buf[i] == 127)
			{
				cout <<"输入的字符中含有控制字符。";
				break;
			}else
			{
				cout <<"输入的字符非字母。";
				break;
			}
		}
		if (i == buf.length())
		{
			cout << "输入的字符全是小写字母" << endl;
		}
	}
}
void main()
{
	fun();	
}

ascill 码

小写字母是97到122

C语言 isupper() 函数用来判断一个字符是否是大写字母。

头文件:ctype.h

语法/原型:

int isupper(int c);

参数 c 表示要检测的字符。

返回值:返回值为非 0(真)表示 c 是大写字母,返回值为 0(假)表示 c 不是大写字母。

 

#pragma warning(disable:4996)
#include<stdio.h>
#include<string.h>
int w, r;
int read() {
	char ch[100] = {0};
	scanf("%s", ch);
	int len = strlen(ch);
	for (int i = 0; i < len; i++) {
		if (ch[i] >= 'a' && ch[i] <= 'z')w++;
		else r++;
	}
	return w;
}

int main() {
	while (read() != 5 || r != 0) {
		if (w != 5)printf("小写字母个数有误!\n"); w = 0;
		if (r > 0)printf("输入了非法字符!\n"); r = 0;
		printf("请重新输入!\n");
	}
	printf("五个小写字母,好耶");
	return 0;
}