C语言 输入若干字符(以回车符为结束),将它们变成其后的第n个字母
C语言输入若干字符(以回车符为结束),将它们变成其后的第n个字母,非字母字符忽略。(其中n由键盘输入)怎么做?...
C语言 输入若干字符(以回车符为结束),将它们变成其后的第n个字母,非字母字符忽略。(其中n由键盘输入)怎么做?
展开
3个回答
展开全部
#include "stdio.h"
#include <stdlib.h>
int main(int argv,char *argc[]){
char s[100],i,n;
printf("Input n(int)...\nn=");
if(scanf("%d",&n)!=1){
printf("Input error, exit...\n");
return 0;
}
while(n<0)
n+=26;
n%=26;
printf("Input a string('Enter' end)...\n");
fflush(stdin);
fgets(s,100,stdin);
for(i=0;s[i]!='\n';i++);
s[i]='\0';
for(i=0;s[i];i++){
if(s[i]>='A' && s[i]<='Z')
s[i]=(s[i]-'A'+n)%26+'A';
else if(s[i]>='a' && s[i]<='z')
s[i]=(s[i]-'a'+n)%26+'a';
}
printf("\nAfter the transformation:\n%s\n",s);
return 0;
}
运行样例:
展开全部
#include <stdio.h>
int main(){
char s[100],c;
int i=0,n,cnt=0;
while(1){
scanf("%c",&c);
if(c == '\n') break;
s[cnt++] = c;
}
printf("请输入N的值:");
scanf("%d",&n);
for(i=0;i<cnt;i++){
if((s[i]-'A'>=0 && s[i]-'Z'<=0) || (s[i]-'a'>=0 && s[i]-'z'<=0)){
if(s[i]-'A'>=0 && s[i]-'Z'<=0){
s[i] = (s[i]-'A'+n)%26 + 'A';
}
else{
s[i] = (s[i]-'a'+n)%26 + 'a';
}
}
}
s[cnt] = '\0';
puts(s);
return 0;
}
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
请举例说明
比如 输入
ksdh342sdf
5
输出 什么
比如 输入
ksdh342sdf
5
输出 什么
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询