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;
}
标签:输出,答案,字母,样例,PTA,str,字符串,输入 From: https://www.cnblogs.com/sly-345/p/18200420