7-1 sdut-C语言实验-字符编码
请将一串长度最长为5的纯字母文本译成一个密码,密码规律如下:用原来的字母后面的第4个字母代替原来的字母。如C用G代替(如果该字母没后面没有第4个字母可代替,则需从26字母表中的首字母开始代替,比如:W用A代替,Z用D代替),最后得到的文本即为密码。
输入格式:
输入一串文本,长度最大为5。
输出格式:
输出对应的密码。格式为:
password is 密码
输入样例:
China
输出样例:
在这里给出相应的输出。例如:
password is Glmre
#include <iostream>
using namespace std;
#define N 100
int main() {
char str[N];
cin.getline(str, N); // 使用getline()函数以支持输入包含空格的字符串
for (int i = 0; str[i] != '\0'; i++) {
if (isalpha(str[i])) { // 检查字符是否为字母
if (islower(str[i])) { // 如果是小写字母
str[i] = 'a' + (str[i] - 'a' + 4) % 26; // 通过模运算实现循环移位
} else if (isupper(str[i])) { // 如果是大写字母
str[i] = 'A' + (str[i] - 'A' + 4) % 26; // 通过模运算实现循环移位
}
}
}
cout << "password is " << str << endl;
return 0;
}
一个小小的问题,isalpha和islower以及isupper都需要整型函数作为参量,但是字符a[i]却可以应用函数是因为进行了隐式转换
7-2 sdut - C语言实验-保留字母
编一个程序,输入一个允许带空格的字符串,将组成字符串的所有非英文字母的字符删除后输出。
输入格式:
一个字符串,长度不超过80个字符。
输出格式:
删掉非英文字母后的字符串。
输入样例:
abc123+xyz.5
输出样例:
在这里给出相应的输出。例如:
abcxyz
#include<bits/stdc++.h>
using namespace std;
char a[10010];
int main(){
cin.getline(a,10010);
//应该是字符a[i]!='\0';
for(int i=0;a[i]!='\0';i++){
if(isalpha(a[i])){
cout<<a[i];
}
}
return 0;
}
7-6 sdut-C语言实验- 全字母句
全字母句 (pangram) 指包含字母表中全部 26 种英文字母(不区分大小写)的句子,其常被用于展示英文字体的显示效果。
输入多个句子,判断哪些句子是全字母句。
注意:句子是可以带空格的。
输入格式:
输入数据有多组(数据组数不超过 100),到 EOF 结束。
每组数据包含一行长度不超过 100 的字符串。
输出格式:
对于每组数据,输出一行。
如果是全字母句则输出 "Yes",否则输出 "No"(不包括引号)。
输入样例:
The quick brown fox jumps over the lazy dog.
The 6th ACM Funny Programming For/While Contest
输出样例:
Yes
No
#include <iostream>
#include<string>
//#include<bits/stdc++.h>
using namespace std;
const int N = 100;
void up(string& str) {
for (int i = 0; i < str.size(); i++) {
if (str[i] >= 'a' && str[i] <= 'z') {
str[i] = str[i] - 32;
}
}
}
string s; int a[N]; //不知道为什么把这一行代码提到int main里面就出错,应该是和自定义函数有关
int main() {
// string s; int a[N];
while (getline(cin, s)) {
memset(a, 0, sizeof(a));
up(s);
unsigned int m = s.size();
for (unsigned int i = 0; i < s.size(); i++) {
if (s[i] >= 65 && s[i] <= 90) {
a[s[i]]++;
}
}
int cnt = 0;
for (int i = 65; i <= 90; i++) {
if (a[i] != 0) cnt++;
}
if (cnt == 26) cout << "Yes" << endl;
else cout << "No" << endl;
}
return 0;
}
浙公网安备 33010602011771号