>  기사  >  백엔드 개발  >  C++에서 대문자와 소문자를 변환하는 방법에 대한 아이디어가 얼마나 많이 있습니까?

C++에서 대문자와 소문자를 변환하는 방법에 대한 아이디어가 얼마나 많이 있습니까?

烟雨青岚
烟雨青岚원래의
2020-06-10 14:30:055815검색

C++에서 대문자와 소문자를 변환하는 방법에 대한 아이디어가 얼마나 많이 있습니까?

C++ 소개:

C++는 C 언어의 절차적 프로그래밍을 수행할 수 있을 뿐만 아니라 추상 데이터 유형을 특징으로 하는 객체 기반 프로그래밍도 수행할 수 있습니다. 상속과 다형성을 특징으로 하는 지향 프로그래밍. C++는 객체 지향 프로그래밍에 능숙하지만 프로세스 기반 프로그래밍도 수행할 수 있습니다. 따라서 C++는 적응하는 문제의 크기에 따라 다양한 크기로 적응할 수 있습니다.

C++는 효율적인 컴퓨터 작동이라는 실용적인 기능을 갖추고 있을 뿐만 아니라 대규모 프로그램의 프로그래밍 품질과 프로그래밍 언어의 문제 설명 기능을 향상시키는 데에도 전념하고 있습니다.

C++에는 대문자와 소문자를 변환하기 위한 다음 아이디어가 있습니다.

아이디어 1. ASCII 문자표에 따라 변환합니다.

C++에서 대문자와 소문자를 변환하는 방법에 대한 아이디어가 얼마나 많이 있습니까?

표에서 볼 수 있듯이 해당 대문자 와 소문자 사이의 차이는 32이며, 여기서 다음 프로그래밍 아이디어가 파생될 수 있습니다.

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

아이디어 2: 대문자와 소문자 변환 기능을 사용하여 다음과 같은 프로그래밍 아이디어를 얻을 수 있습니다. 프로그래밍 아이디어는 다음에서 파생될 수 있습니다.

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 함수 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 함수 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 변환을 사용하여 tolower 및 toupper와 결합

#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 변환 함수로 작성, 변환을 위해 |= 및 &= 사용

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

추천 튜토리얼: "C 언어 튜토리얼"

위 내용은 C++에서 대문자와 소문자를 변환하는 방법에 대한 아이디어가 얼마나 많이 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.