字符及字符串类型编程学习(2)

问题一 : 写一个程序,读一个在字母C和X之间的字符,打印出该字母在中间的五个字母。
首次编程代码如下:(方法一)
指针方法
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(int argc, char *argv[]) {
char a[100]=“ABCDEFGHIJKLMNOPQRSTUVWXYZ”;
char *p=a;
int i;
char z;

printf(“请输入一个大写字符(C到X之间):”);
scanf("%c",&z);

char q,w,e,r;
for(i=0;i<strlen(a);i++){
if( *(p+i)==z){
q= *(p+i-1);
w= *( p+i-2);
e= *(p+i+1);
r= *(p+i+2);
}
}
printf(“输出相邻的字母构成的字符串: %c%c%c%c%c”,w,q,z,e,r);

return 0;
}
代码运行结果如上
总感觉代码比较冗余,寻求更简便方法。
无指针方法代码如下:(方法二)
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(int argc, char *argv[]) {
int i;
char z;
printf(“请输入一个大写字符(C到X之间):”);
scanf("%c",&z);
if((z<‘C’)||(z>‘X’)){
printf(“输入有误;\n”);
} else{
printf(“输出相邻的字母构成的字符串: “);
for(i=0;i<5;i++){
char s;
s=z-2+i;
printf(”%c”,s);
}
}
return 0;
}
运行结果如上
体会:还不能够把传统的字母等各种符号与ASCII码合理转化。字符之间可以任意的进行加减切换。
问题二:编程输入一个小写字母,以该字母为第一个字母按字母表逆序输出所有的小写字母。
方法一:(指针方法)

int main(int argc, char *argv[]) {
char n;
char q[]=“abcdefghijklmnopqrstuvwxyz” ;
printf(“请输入一个小写字母:”);
scanf("%c",&n);
int m=n-‘a’;
char *a;
char *b;

a=&q[m];
b=&q[25];
for(;*a>=‘a’;a–){
printf("%c",*a);
}
for(;*b>q[m];b–){
printf("%c",*b);
}
return 0;
}
运行结果如上

方法二:(无指针)
int main(int argc, char *argv[]) {
char n;
char a;
printf(“请输入一个小写字母:”);
scanf("%c",&n);
for(a=n;a>=97;a–){
printf("%c",a);
}
for(a=‘z’;a>n;a–){
printf("%c",a);
}
return 0;
}
运行结果如上

猜你喜欢

转载自blog.csdn.net/qq_36942291/article/details/86623868
今日推荐