C++ | 大小写字母转换

  • 时间:
  • 浏览:
  • 来源:互联网

题目描述

实现字母的大小写转换。多组输入输出。

输入描述:

多组输入,每一行输入大写字母。

输出描述:

针对每组输入输出对应的小写字母。

在这里插入图片描述

  • 答案如下:
#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;
}

大小写字母转换总结:

1. 用大小写字母的ASSIC码的差值32来求解

ASCII码表格:

ASCII控制字符ASCII字符ASCII字符ASCII字符
0NUT32(space)64@96
1SOH33!65A97a
2STX34"66B98b
3ETX35#67C99c
4EOT36$68D100d
5ENQ37%69E101e
6ACK38&70F102f
7BEL39,71G103g
8BS40(72H104h
9HT41)73I105i
10LF42*74J106j
11VT43+75K107k
12FF44,76L108l
13CR45-77M109m
14SO46.78N110n
15SI47/79O111o
16DLE48080P112p
17DCI49181Q113q
18DC250282R114r
19DC351383S115s
20DC452484T116t
21NAK53585U117u
22SYN54686V118v
23TB55787W119w
24CAN56888X120x
25EM57989Y121y
26SUB58:90Z122z
27ESC59;91[123{
28FS60<92/124|
29GS61=93]125}
30RS62>94^126`
31US63?95_127DEL

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;
}

后记

参考文章

本文链接http://www.dzjqx.cn/news/show-617412.html