將當前字串中字母替換為字母表中的后一個字母,同時將小寫字母轉換為大寫,如輸入:ABCD,輸出:bcde
uj5u.com熱心網友回復:
題目不明確,Z和z怎么處理沒有說,這里按Zz轉a處理
#include <stdio.h>
#include <string.h>
int main(){
char *p,str[]="asdfaGSFGSDFGZFADzsadf";
printf("%s\n",str);
p=str;
while(*p)
{
if(*p == 'z' || *p == 'Z')
*p='a';
else if(*p >= 'A' && *p < 'Z')
*p='a'+(*p-'A')+1;
else
*p+=1;
p++;
}
printf("%s",str);
return 0;
}
uj5u.com熱心網友回復:
按題目的意思,同時將小寫字母轉換為大寫,反過來就是同時將大寫字母轉換為小寫,應該這么理解吧,不然它的樣例解釋不通,供參考://將當前字串中字母替換為字母表中的后一個字母,同時將小寫字母轉換為大寫,
//如輸入:ABCD,輸出:bcde
#include<stdio.h>
void str_Cap_Low(char *s);
int main()
{
char str[256];
gets(str);
str_Cap_Low(str);
puts(str);
return 0;
}
void str_Cap_Low(char *s)
{
while(*s){
if((*s >= 'a' && *s <= 'z')){
if(*s == 'z')
*s = 'a';
else
*s += 1;
*s -= 32;
}else
if((*s >= 'A' && *s <= 'Z')){
if(*s == 'Z' )
*s = 'A';
else
*s += 1;
*s += 32;
}
s++;
}
}
uj5u.com熱心網友回復:
#include <stdio.h>int main(int argc,char* argv[])
{
char str[100] ,*p=str;
scanf("%s",str) ;
while(*p)
{
//((*p=(*p | 0x20)+1)<='z')|| (*p='a') ; //轉小寫
//*p=((*p | 0x20)+1-'a')%26+'a' ; //轉小寫
//*p=((*p & 0xdf)+1-'A')%26+'A' ; //轉大寫
((*p=(*p & 0xdf)+1)<='Z')|| (*p='A') ; //轉大寫
p++ ;
}
printf("%s\n",str);
return 0 ;
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/282189.html
標籤:C++ 語言
下一篇:c語言求助
