1.题目描述
实现字母的大小写转换。多组输入输出。
输入描述:
多组输入,每一行输入大写字母。
输出描述:
针对每组输入输出对应的小写字母。
- 答案如下:
#include<iostream>
using namespace std;
int main(){
//---------------------------------------
//第一种方法:使用ascii码,大小写差值求解
/*char ch;
while(scanf("%c",&ch)==1){
getchar();
printf("%c\n",ch+32);
}
//---------------------------------------
//第二种方法:
char ch;
while(scanf("%c\n",&ch)!=EOF){
printf("%c\n",ch+32);
}*/
//---------------------------------------
//第三种方法:getchar(),如果拿到的是回车,就进入下一次循环,如果是结尾,就推出循环,否则一直转换为小写
char ch;
while(1){
ch=getchar();
if(ch=='\n')
continue;
else if(ch==EOF)
break;
else
printf("%C\n",ch+32);
}
return 0;
}
2.题目描述
实现字母的大小写转换。多组输入输出。
输入描述:
多组输入,每一行输入大写或小写字母。
输出描述:
针对每组输入输出对应的小写或大写字母。
#include<iostream>
using namespace std;
int main(){
//--------------------------------------------------------
//----------------法1-------------------------------------
//---------------------------------------------------------
char a;
while(1){
a=getchar();
if(a=='\n')
continue;
else if(a==EOF)
break;
else if(a>='A'&&a<='Z')
printf("%C\n",a+32);
else if(a>='a'&&a<='z')
printf("%C\n",a-32);
}
//----------------------------------------------------------------------
//---------------------法2---------------------------------------------
//----------------------------------------------------------------------
char a;
while(scanf("%c",&a)!=EOF){
if(a=='\n')
continue;
else if(a>='A'&&a<='Z')
printf("%c\n",a+32);
else if(a>='a'&&a<='z')
printf("%c\n",a-32);
else
printf("%c\n",a);
}
//----------------------------------------------------------------------
//---------------------法3---------------------------------------------
//----------------------------------------------------------------------
char a;
while(scanf("%c",&a)!=EOF){
if(a=='\n')
continue;
else if(a>='A'&&a<='Z')
printf("%c\n", tolower(a));
else if(a>='a'&&a<='z')
printf("%c\n",toupper(a));
else
printf("%c\n",a);
}
return 0;
}
大小写字母转换总结:
1. 用大小写字母的ASSIC码的差值32来求解
ASCII码表格:
ASCII值 | 控制字符 | ASCII值 | 字符 | ASCII值 | 字符 | ASCII值 | 字符 |
---|---|---|---|---|---|---|---|
0 | NUT | 32 | (space) | 64 | @ | 96 | 、 |
1 | SOH | 33 | ! | 65 | A | 97 | a |
2 | STX | 34 | " | 66 | B | 98 | b |
3 | ETX | 35 | # | 67 | C | 99 | c |
4 | EOT | 36 | $ | 68 | D | 100 | d |
5 | ENQ | 37 | % | 69 | E | 101 | e |
6 | ACK | 38 | & | 70 | F | 102 | f |
7 | BEL | 39 | , | 71 | G | 103 | g |
8 | BS | 40 | ( | 72 | H | 104 | h |
9 | HT | 41 | ) | 73 | I | 105 | i |
10 | LF | 42 | * | 74 | J | 106 | j |
11 | VT | 43 | + | 75 | K | 107 | k |
12 | FF | 44 | , | 76 | L | 108 | l |
13 | CR | 45 | - | 77 | M | 109 | m |
14 | SO | 46 | . | 78 | N | 110 | n |
15 | SI | 47 | / | 79 | O | 111 | o |
16 | DLE | 48 | 0 | 80 | P | 112 | p |
17 | DCI | 49 | 1 | 81 | Q | 113 | q |
18 | DC2 | 50 | 2 | 82 | R | 114 | r |
19 | DC3 | 51 | 3 | 83 | S | 115 | s |
20 | DC4 | 52 | 4 | 84 | T | 116 | t |
21 | NAK | 53 | 5 | 85 | U | 117 | u |
22 | SYN | 54 | 6 | 86 | V | 118 | v |
23 | TB | 55 | 7 | 87 | W | 119 | w |
24 | CAN | 56 | 8 | 88 | X | 120 | x |
25 | EM | 57 | 9 | 89 | Y | 121 | y |
26 | SUB | 58 | : | 90 | Z | 122 | z |
27 | ESC | 59 | ; | 91 | [ | 123 | { |
28 | FS | 60 | < | 92 | / | 124 | | |
29 | GS | 61 | = | 93 | ] | 125 | } |
30 | RS | 62 | > | 94 | ^ | 126 | ` |
31 | US | 63 | ? | 95 | _ | 127 | DEL |
ASCII 码大致由以下两部分组成:
- ASCII 非打印控制字符: ASCII 表上的数字 0-31 分配给了控制字符,用于控制像打印机等一些外围设备。
- ASCII 打印字符:数字 32-126 分配给了能在键盘上找到的字符,当查看或打印文档时就会出现。
#include <iostream>
using namespace std;
int main()
{
char a[20];
cout<<"请输入一串字符:\n";
cin>>a;
for(int i = 0;a[i];i++)
{
if(a[i] >= 'a'&&a[i] <= 'z')
a[i] -= 32;
else if(a[i] >= 'A'&&a[i] <= 'Z')
a[i] += 32;
}
for(int i = 0;a[i];i++)
cout<<a[i];
cout<<endl;
system("pause");
return 0;
}
2. 大小写字母转换函数
简单
#include <iostream>
using namespace std;
int main()
{
cout<<(char)toupper(97)<<'\n';
cout<<(char)toupper('a')<<'\n';
cout<<(char)tolower(66)<<'\n';
cout<<(char)tolower('B')<<'\n';
return 0;
}
看看
- 头文件:#include <string.h>
- strlwr()用于将字符串中的字符转换为小写,其原型为:char *strlwr(char *str);
- 注意:strlwr()和strupr()不是标准库函数,只能在windows下(VC、MinGW等)使用,Linux GCC中需要自己定义。
#include<iostream>
#include<string.h>
using namespace std;
int main(int argc, char* argv[])
{
//声明字符数组
char str[80],*p;
int i;
//转换字符串中的小写为大写
cout<<"将字符串中的小写字母转换为大写"<<endl;
cout<<"请输入原字符串:"<<endl;
cin>>str;
p=strupr(str);
cout<<"p:"<<p<<endl;
cout<<"string:"<<str<<endl;
cout<<"___________________"<<endl;
//转换字符串中的大写为小写
cout<<"将字符串中的大写字母转换为小写"<<endl;
cout<<"请输入原字符串:"<<endl;
cin>>str;
p=strlwr(str);
cout<<"p:"<<p<<endl;
cout<<"string:"<<str<<endl;
cout<<"___________________"<<endl;
system("pause");
return 0;
}