练习1
#include <string>
#include <iostream>
#include <cctype>
using namespace std;
bool judge(string s) {
if(!isalpha(s[0])) {
return false;
}
string::iterator it = s.begin();
for(; it != s.end(); ++it) if(!isdigit(*it) && !isalpha(*it) && *it != '_') return false;
return true;
}
int main() {
string s;
cin >> s;
cout << (judge(s) ? "yes" : "no");
return 0;
}
练习2
#include <string>
#include <iostream>
#include <cctype>
using namespace std;
int number[30] = {0};
void count(string s) {
string::iterator it = s.begin();
for(; it != s.end(); it++) {
if(isupper(*it)) number[*it - 'A']++;
}
}
int main() {
string s;
while(getline(cin, s)) {
count(s);
}
int max = 0, i;
for(i = 0; i < 26; i++) if(number[i] > max) max = number[i];
int j;
for(i = max; i > 0; i--) {
for(j = 0; j < 26; j++) printf("%c ", (number[j] >= i) ? '*' : ' ');
printf("\n");
}
printf("A B C D E F G H I J K L M N O P Q R S T U V W X Y Z");
return 0;
}
输入样例
THE QUICK BROWN FOX JUMPED OVER THE LAZY DOG.
THIS IS AN EXAMPLE TO TEST FOR YOUR
HISTOGRAM PROGRAM.
HELLO!
[EOF]
输出样例
练习3
#include <string>
#include <iostream>
#include <cctype>
using namespace std;
void print(int p1, int p2, int p3, char front, char back) {
if(back >= front) {
printf("-");
return;
}
if(p3 == 1) {
for(int i = front; i < back; i++) {
for(int j = p2; j > 0; j--) printf("%c", )
}
}
}
int main() {
int p1, p2, p3;
cin >> p1 >> p2 >> p3;
string s;
cin >> s;
string::iterator it = s.begin();
for(; it != s.end(); it++) {
if(*it == '-') print(p1, p2, p3, *(it - 1), *(it + 1)); else printf("%c", *it);
}
return 0;
}