Home  >  Article  >  Backend Development  >  How many ideas are there for converting uppercase and lowercase letters in C++?

How many ideas are there for converting uppercase and lowercase letters in C++?

烟雨青岚
烟雨青岚Original
2020-06-10 14:30:055815browse

How many ideas are there for converting uppercase and lowercase letters in C++?

C Introduction:

C is the inheritance of C language. It can not only perform procedural programming of C language, but also perform other tasks. Object-based programming characterized by abstract data types can also be used for object-oriented programming characterized by inheritance and polymorphism. While C is good at object-oriented programming, it can also perform process-based programming. Therefore, C is big or small in terms of the size of the problem it can adapt to.

C not only has the practical features of efficient computer operation, but is also committed to improving the programming quality of large-scale programs and the problem description capabilities of programming languages.

C There are several ideas for converting uppercase and lowercase letters:

Idea 1. Convert according to the ASCII table of letters:

How many ideas are there for converting uppercase and lowercase letters in C++?

As can be seen from the table, the difference between the corresponding uppercase and lowercase letters is 32, from which the following programming ideas can be derived:

Program 1.1

#include <iostream>
using namespace std;
int main()
{
	char a[20];
	int i = 0;
	cout<<"请输入一串字符:\n";
	cin>>a;
	for(;a[i];i++)
	{
		if(a[i] >= &#39;a&#39;&&a[i] <= &#39;z&#39;)
            a[i] -= 32;
		else if(a[i] >= &#39;A&#39;&&a[i] <= &#39;Z&#39;)
            a[i] += 32;
	}
	for(i = 0;a[i];i++)
		cout<<a[i];
	cout<<endl;
	system("pause");
	return 0;
}

Program 1. 2

#include <iostream>
using namespace std;
void main(void)
{
    char i;
    cout<<"Input,&#39;#&#39;for an end: "<<endl;
    while(1)
    {
        cin >> i;
        if ((i>=65)&&(i<=90))
        {
            i=i+32;
            cout << i;
        }
        else if((i>=97)&&(i<=122))
        {
            i=i-32;
            cout << i;
        }
        else
            cout << (int)i;
        if(i==&#39;#&#39;)
            break;
    }
}

Idea 2: Using the uppercase and lowercase letter conversion function, the following programming ideas can be derived from this:

Program 2.1 Simple version

#include <iostream>
using namespace std;
int main()
{
    cout<<(char)toupper(97)<<&#39;\n&#39;;
    cout<<(char)toupper(&#39;a&#39;)<<&#39;\n&#39;;
    cout<<(char)tolower(66)<<&#39;\n&#39;;
    cout<<(char)tolower(&#39;B&#39;)<<&#39;\n&#39;;
    return 0;
}

Program 2.2 Utilize functions strupr, strlwr

#include<iostream>
#include<string>
using namespace std;
int main()
{
    //声明字符数组
    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;
 
}

Program 2.3 Utilize functions toupper, tolower

#include<iostream>
#include<cctype>
#include<vector>
using namespace std;
int main()
{
    vector<char> vch;
    int n;
    char elem;
    cout<<"请输入大小写字符的个数:";
    cin>>n;
    cout<<"请输入"<<n<<"个大小写字符:";
    for(int i = 0;i<n;++i)
    {
        cin>>elem;
        vch.push_back(elem);
    }
    vector<char>::iterator it = vch.begin();
    for(it;it != vch.end();++it)
 
    {
       if(*it >= &#39;a&#39;&&(*it) <=&#39;z&#39;)
            *it = toupper(*it);
        else if(*it >= &#39;A&#39;&& (*it) <= &#39;Z&#39;)
            *it = tolower(*it);
    }
    cout<<"大小写转化之后的结果:";
    vector<char>::iterator itera = vch.begin();
    for(itera;itera != vch.end();++itera)
        cout<<*itera;
    cout<<endl;
    return 0;
}

Program 2.4 Use transform with tolower and toupper to combine

#include<iostream>
#include<algorithm>
#include<string>
#include<cctype>
using namespace std;
int main()
{
    cout<<"请输入一个全部大写的字符串:";
    string str;
    cin>>str;
    ///转小写
    transform(str.begin(),str.end(),str.begin(),tolower);
    ///transform(wstr.begin(), wstr.end(), wstr.begin(), towlower);
    cout<<"转化为小写后为:"<<str<<endl;
    ///转大写
    cout<<"请再输入一个全部小写的字符串:";
    string s;
    cin>>s;
    transform(s.begin(), s.end(), s.begin(), toupper);
    ///transform(wstr.begin(), wstr.end(), wstr.begin(), towupper);
    cout<<"转化为大写后为:"<<s;
    wstring wstr =L"Abc";
    transform(wstr.begin(), wstr.end(), wstr.begin(), towupper);
    cout<<wstr;
    return 0;
}

Program 2.5 is written as a convert function, using |= and &= to transform

#include <iostream>
#include <cassert>
using namespace std;
char* convert(char *src)
{
    char *p = src;
    assert(p != NULL);
    while(*p)
    {
        if (&#39;A&#39; <= *p && *p < &#39;Z&#39;)
            *p |= 0x20;
        else if (&#39;a&#39; <= *p && *p < &#39;z&#39;)
            *p &= ~0x20;
        p++;
    }
    return src;
}
int main()
{
    char src;
    cin>>src;
    convert(&src);
    cout<<src;
    return 0;
}

Recommended tutorial: "C Language Tutorial"

The above is the detailed content of How many ideas are there for converting uppercase and lowercase letters in C++?. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn