急求一道c语言编程题!!!
用条件编译方法实现以下功能:输入一行电报文字,可以任选两种输出,一为原文输出;一为将字母变成其下一字母(如’a’变成’b’……….’z’变成’a’。其他字符不变)。用#d...
用条件编译方法实现以下功能:输入一行电报文字,可以任选两种输出,一为原文输出;一为将字母变成其下一字母(如’a’变成’b’……….’z’变成’a’。其他字符不变)。用#define命令来控制是否要译成密码。例如:#define change 1 ,则输出密码。若#define change 0,则不译成密码,按原码输出。
各位给的答案编译后有错误呀,哪位好心人帮帮忙呀,谢谢 展开
各位给的答案编译后有错误呀,哪位好心人帮帮忙呀,谢谢 展开
4个回答
展开全部
实在不好意思,写的太匆忙,考虑不仔细,刚修改了,程序中对大写小写字母都可以按你给的要求进行转换了:)
#include<stdio.h>
#include<stdlib.h>
#define change 0
#define N 50
void main(){
char s[N];
int i=0;
printf("输入电报文\n");
scanf("%s",&s);
if(change)
printf("输出原码:%s\n",s);
else{
printf("输出密码:");
while(s[i]!='\0'){
if(s[i]>='a'&&s[i]<'z'||s[i]>='A'&&s[i]<'Z')
printf("%c",s[i]+1);
else if(s[i]=='z')
printf("%c",'a');
else if(s[i]=='Z')
printf("%c",'A');
else printf("%c",s[i]);
i++;
}
printf("\n");
}
}
#include<stdio.h>
#include<stdlib.h>
#define change 0
#define N 50
void main(){
char s[N];
int i=0;
printf("输入电报文\n");
scanf("%s",&s);
if(change)
printf("输出原码:%s\n",s);
else{
printf("输出密码:");
while(s[i]!='\0'){
if(s[i]>='a'&&s[i]<'z'||s[i]>='A'&&s[i]<'Z')
printf("%c",s[i]+1);
else if(s[i]=='z')
printf("%c",'a');
else if(s[i]=='Z')
printf("%c",'A');
else printf("%c",s[i]);
i++;
}
printf("\n");
}
}
展开全部
注意: 楼上的程序遇到字符 z 会出错哟
准确的说是除了a-x这几个字符能蒙对外,其他
的字符都会错,本人程序不但ansi 字符可以正
确显示,而且还能完美支持中文字符,实乃一个
钟头才出一份的稀有精品
#define change 1
mm(char* s){
if (change){
register char c;
puts(" 密码密文:\n" );
for (;c=*s ;s++ )
{
if (
((c<'z')&&(c>='a'))
||
((c<'Z')&&(c>='A'))
)
{
putchar(c+1);
}else{
if(c=='z'){
putchar('a');
}else{
if(c=='Z'){
putchar('A');
}else{
putchar(c);
}
}
}
}
return change;
}else{
printf(" 密码原文\n%s\n",s );
return change;
}
}
int main (int an,char** as )
{
if (an>1)
{
mm(as[1]);
}
}
使用方法:
程序名 密码
按回车
得结果
准确的说是除了a-x这几个字符能蒙对外,其他
的字符都会错,本人程序不但ansi 字符可以正
确显示,而且还能完美支持中文字符,实乃一个
钟头才出一份的稀有精品
#define change 1
mm(char* s){
if (change){
register char c;
puts(" 密码密文:\n" );
for (;c=*s ;s++ )
{
if (
((c<'z')&&(c>='a'))
||
((c<'Z')&&(c>='A'))
)
{
putchar(c+1);
}else{
if(c=='z'){
putchar('a');
}else{
if(c=='Z'){
putchar('A');
}else{
putchar(c);
}
}
}
}
return change;
}else{
printf(" 密码原文\n%s\n",s );
return change;
}
}
int main (int an,char** as )
{
if (an>1)
{
mm(as[1]);
}
}
使用方法:
程序名 密码
按回车
得结果
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include<stdio.h>
main()
{
char a[100];
int i,n;
gets(a);
n=strlen(a)-1;
for(i=0;i<n;i++)
if(a[i]>='a'&&a[i]<='z')
{a[i]+=1;
printf("%c",a[i]);}
else
printf("%c",a[i]);
getch();
}
main()
{
char a[100];
int i,n;
gets(a);
n=strlen(a)-1;
for(i=0;i<n;i++)
if(a[i]>='a'&&a[i]<='z')
{a[i]+=1;
printf("%c",a[i]);}
else
printf("%c",a[i]);
getch();
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
上面的回答好贱!
那是广告! 真贱
那是广告! 真贱
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询