❶ 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