我正在尝试用c语言创建一个获取数字和字符串的程序,例如数字是3,字符串是" Zig"。
输出应该是字母表的代码+数字。如果角色的数量超过" Z" (90)它应该从" A"再次。类似地,对于小写字符,当超越" z"从" a"重新开始。
输入:" Zig"
数量:3
输出:" Clj"
我有一个问题,它应该从A(对于大写)&再一次。
这是我的代码吧!旋转部件有问题如何从A或a再次开始:)
char a[50];
int n,i;
printf("enter your number:\t");
scanf("%d",&n);
printf("enter your string:\t");
fflush(stdin);
gets(a);
while('A'<= a[i] <= 'Z'){
if(a[i]+n > 'Z'){
}
else{
a[i]=a[i]+n;
}
i++;
}
while('a' <= a[i] <= 'z'){
if(a[i]+n > 'z'){
}
else{
a[i]=a[i]+n;
}
i++;
}
printf("string:\n");
puts(a);
}
答案 0 :(得分:0)
我有一个问题,它应该从A开始(对于大写字母)&amp;再次
当你到达Z(十进制90)时,你可以很容易地减去25(ASCII char&#34; EM&#34;)以回到A(十进制65)。类似地,当你到达z时你可以重复减去25并且它将循环回到
答案 1 :(得分:0)
修正了错误
#include <stdio.h>
#include <strings.h>
int main(){
char str [80];
int number;
printf ("Enter your string: ");
scanf ("%79s",str);
printf ("Enter your number: ");
scanf ("%d",&number);
for(int i= 0; i < strlen(str);i++){
str[i]+=number;
while(str[i]>'Z' && str[i] < 'a'){
str[i] = 'A'+ str[i] - 'Z';
}
while(str[i]>'z'){
str[i] = 'a'+ str[i] - 'z';
}
}
printf("%s",str);
}