C语言 输入若干字符(以回车符为结束),将它们变成其后的第n个字母

C语言输入若干字符(以回车符为结束),将它们变成其后的第n个字母,非字母字符忽略。(其中n由键盘输入)怎么做?... C语言 输入若干字符(以回车符为结束),将它们变成其后的第n个字母,非字母字符忽略。(其中n由键盘输入)怎么做? 展开
 我来答
White_MouseYBZ
2017-11-30 · TA获得超过4万个赞
知道大有可为答主
回答量:2.1万
采纳率:82%
帮助的人:6711万
展开全部
#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;
}

运行样例:

pplixin4
2016-12-20 · TA获得超过282个赞
知道小有建树答主
回答量:274
采纳率:0%
帮助的人:144万
展开全部
#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;
}
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
stomachcao
推荐于2017-11-30 · TA获得超过6263个赞
知道大有可为答主
回答量:2276
采纳率:75%
帮助的人:737万
展开全部
请举例说明
比如 输入
ksdh342sdf
5
输出 什么
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式