#include<stdio.h>
int main()
{
char c,a[26],b[26];
char ch,sh,s[80];
int i,j,k,cnt=0;
c=getchar();
for(i=0;c!='\n';i++)
{
s[i]=c;
cnt++;
c=getchar();
}
for(i=0,ch='A';i<26;i++)
{
a[i]=ch;ch++;
}
for(i=0,sh='Z';i<26;i++)
{
b[i]=sh;sh--;
}
for(j=0;j<cnt;j++)
{
if(s[j]>='A'&&s[j]<='Z')
{
for(k=0;k<26;k++)
if(s[j]==a[k])
s[j]=b[k];
}
}
for(i=0;i<cnt;i++)
printf("%c",s[i]);
return 0;
}
pta字符串替换这样做为什么不行?这样应用的话只会替换部分大写字母
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
1条回答 默认 最新
- 技术专家团-Plio大咸鱼 2021-12-07 18:56关注
改成这样试一下
#include <stdio.h> int main() { char c, a[26], b[26]; char ch, sh, s[80]; int i, j, k, cnt = 0; c = getchar(); for (i = 0; c != '\n'; i++) { s[i] = c; cnt++; c = getchar(); } for (i = 0, ch = 'A'; i < 26; i++) { a[i] = ch; ch++; } for (i = 0, sh = 'Z'; i < 26; i++) { b[i] = sh; sh--; } for (j = 0; j < cnt; j++) { if (s[j] >= 'A' && s[j] <= 'Z') { for (k = 0; k < 26; k++) { if (s[j] == a[k]) { s[j] = b[k]; break; } } } } for (i = 0; i < cnt; i++) printf("%c", s[i]); return 0; }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报 编辑记录
悬赏问题
- ¥30 写segy数据时出错3
- ¥100 linux下qt运行QCefView demo报错
- ¥50 F1C100S下的红外解码IR_RX驱动问题
- ¥20 基于matlab的航迹融合 航迹关联 航迹插补
- ¥15 用Matlab实现图中的光线追迹
- ¥15 联想笔记本开机出现系统更新界面
- ¥15 各位帮帮我 我不想重做系统
- ¥30 微信小程序蓝牙数据透传
- ¥15 加氢站氢负荷数据集来源
- ¥15 umi接入sentry遇到问题