❶ c语言如何实现字符之间的替换(打出一列顺序,输出按此顺序输出)
根据你的题意。
第一行输入是26个字母的指定顺序。
第二行输入是内容字符串。
将内容字符串中的字母按照指定顺序替换成对应26个字母原顺序的字母。
规则:第一行输入必须是26个小写母,且不能重复。
替换后的字符中字母大小写参照原字符串。
下面是代码:
#include<stdio.h>
#include<string.h>
#define MAXLEN 100//第二行输入字符串的最大长度
char *inPutNewOrder();//输入26个字母的新顺序,必须为小写字母,不能有重复。输入成功返回字符串,失败返回NULL
char getNewLetter(char cIn,char newOrder[27]);//获取字母对应newOrder的原始字母,成功返回字母,失败返回0
int main()
{
int i;
char *newOrder;//输入新字母顺序
char inputStr[MAXLEN],cIn;
while(1)
{
newOrder=NULL;
while(!newOrder)
newOrder=inPutNewOrder();
memset(inputStr,0,sizeof(char)*MAXLEN);
for(i=0;i<MAXLEN;i++)
{
cIn=getchar();
if(cIn==10)//回车结束输入
break;
if((cIn>=65 && cIn<=90)||(cIn>=97 && cIn<=122))//如输入的是字母,对应新字母顺序,找到原字母
inputStr[i]=getNewLetter(cIn,newOrder);
else
inputStr[i]=cIn;
}
if(i==MAXLEN)
while ((cIn = getchar()) != EOF && cIn != ' ');
printf("%s ",inputStr);
}
return 0;
}
char *inPutNewOrder()//输入26个字母的新顺序,必须为小写字母,不能有重复
{
int i=0,j,flag=1;
static char newOrder[27];
char c=0;
memset(newOrder,0,sizeof(char)*27);
while(1)
{
if(newOrder[25]!=0)
break;
c=getchar();
if(c<97 || c>122)//输入小写字母以外字符,标识错误
flag=0;
for(j=0;flag && j<i;j++)
if(newOrder[j]==c)//输入重复,标识错误
flag=0;
if(!flag)//错误,终止输入
{
printf("输入格式错误!必须为26个小写字母,且不能有重复,请重新输入。 ");
while ((c = getchar()) != EOF && c != ' ');
return NULL;
}
newOrder[i]=c;
i++;
}
while ((c = getchar()) != EOF && c != ' ');
return newOrder;
}
char getNewLetter(char cIn,char newOrder[27])//获取字母对应newOrder的原始字母,成功返回字母,失败返回0
{
static char letters[]="abcdefghijklmnopqrstuvwxyz";
char c;
int i,flag;//flag=1大写字母,flag=0是小写字母
if(cIn>=65 && cIn<=90)//输入的是大写字母
c=cIn+32,flag=1;
if(cIn>=97 && cIn<=122)//输入的是小写字母
c=cIn,flag=0;
for(i=0;i<26;i++)
if(newOrder[i]==c)//在新序列中匹配大写字母或小写字母
{
if(flag)
return letters[i]-32;
else
return letters[i];
}
return 0;
}
❷ C语言编程,字母转换
楼主你好
具体代码如下:
#include<stdio.h>
#include<ctype.h>
#define MAX 6
int main()
{
char code[MAX];
int i=0;
printf("输入五位电报字符:");//一个一个的输入 不要一下就把5个输入了
while(i<MAX-1)
{
code[i]=getchar();
while( isalpha(code[i]) == 0 )//如果不是字母 继续输入
{
printf("第%d个字符输入错误\n应该输入字母:",i+1);
getchar();
code[i]=getchar();
}
getchar();
i++;
}
code[i]='\0';
for(i=0;i<MAX-1;i++)
{
if(code[i]>='A' && code[i]<='Z')
{
int sub;
code[i]+=32;
sub=code[i]-'a';
code[i]='z'-sub;
}
else
{
int sub;
code[i]-=32;
sub=code[i]-'A';
code[i]='Z'-sub;
}
}
printf("解密文为:");
puts(code);
return 0;
}
输入:
a
Z
b
Y
c
输出:ZaYbZ
希望能帮助你哈^_^
❸ 怎么用C语言编26个字母大小写互相转换的程序
1,首先根据ASCALL码判断大小写
2IF大写,将其ASCALL减少32并输出;ELSE将其ASCALL增加32并输出
具体代码自己写
❹ c语言中如何把第一个字母变为第二十六个字母
C语言中 char型用的是ASCII码 也就是用整数来表是字母 65表示‘A’ 66表示‘B’ 以此类推 90表示‘Z’。
c语言中的输出函数 printf("%d",'A') 输出的是 字母A的整数编码 65 。
printf("%c",65); 按照字符格式 输出的是 大写字母A。
想print("%c",'A'+25) 就是输出大写字母Z。
C语言区分大小写 小写字母'a' 的AScII码是 97 'a'+25 就是 ‘z’ 122。
❺ 二十六字母大小写c语言源代码循环转换
#include<stdio.h>
int main()
{
char a,c;
while(scanf("%c",&a)!=EOF)
{
getchar();
if(a>='a'&&a<='z')
{
c=a+'A'-'a';
}
if(a>='A'&&a<='Z')
{
c=a-'A'+'a';
}
printf("%c\n",c);
}
}
❻ 多个字母大小写转化c语言
多个字母大小写转化c语言,以下是连续一行字符中大小写互换的C语言代码:
char c;
while((c=getchar())!='\n')
{if(c>='a'&&c<='z')c-=32;
else if(c>='A'&&c<='Z')c+=32;
putchar(c);
}
❼ C语言!交换字母的编程!
trans()
{
char chIN, chOUT;
scanf("%c",&chIN);
if(chIN>=97 && chIN<=122)
chOUT = chIN - 32;
else if(chIN >= 65 && chIN<=90)
chOUT = chIN;
else
{
printf("请输入字母");
return ;
}
printf("%c",chOUT);
}
❽ 求编一个C语言程序 实现的效果是,将26个字母头尾对换,成为一个加密运算那种
#include <stdio.h>
int main(int argc, char *argv[])
{
char s[30];
gets(s);
for(int i=0;s[i];i++)
s[i]=122-(s[i]-97);
puts(s);
return 0;
}
/*要完成头尾互换很简单,只要找出当前字母和a之间的距离x,再找出距离z为x的另一个字母,这个字母就是要找的。a的ascii值为97,z的ascii值为122,所以用上面的减法就可以很容易完成。我这里只写了小写字母的算法,大写的或者大小写混合的你自己写写看吧*/
❾ C语言中关于大小写字母转换
实现任意大小写字母转换。代码如下:
#include<stdio.h>
void main()
{
char x='a';
printf("请您输入任意大写字母或者小写字母x:\n");
scanf("%c",&x);
if( x>='A' && x<='Z')
{
x=x+32;
}
else
if( x>='a' && x<='z')
{
x=x-32;
}
printf("%c\n",x);
}
小写字母转换成大写字母的代码如下:
#include<stdio.h>
void main()
{
char inputch,outputch;
printf("please input one charater:");
scanf("%c",&inputch);
outputch=inputch-32;
printf("result:%c to %c\n",inputch,outputch);
}
3
大写字母转换成小写字母的代码如下:
#include<stdio.h>
void main()
{
char inputch,outputch;
printf("please input one charater:");
scanf("%c",&inputch);
outputch=inputch+32;
printf("result:%c to %c\n",inputch,outputch);
}
❿ C语言中关于字母转换的程序设计
字母增4,其它字符保持不变。
#include <stdio.h>
void main()
{
char c;
while( (c=getchar()) !='\n')
{
if ( c >='a' && c <='z'){
c+=4;
if (c >'z') c = 'a' + c - 'z' -1;
} else if ( c>='A' && c <='Z'){
c+=4;
if (c >'Z') c = 'A' + c - 'Z' -1;
}
printf("%c",c);
}
}
==============
输入:a->e,D->H,Z->D
输出:e->i,H->L,D->H