ホームページ  >  記事  >  バックエンド開発  >  C++ で大文字と小文字を変換するためのアイデアはいくつありますか?

C++ で大文字と小文字を変換するためのアイデアはいくつありますか?

烟雨青岚
烟雨青岚オリジナル
2020-06-10 14:30:055874ブラウズ

C++ で大文字と小文字を変換するためのアイデアはいくつありますか?

C はじめに:

C は C 言語の継承であり、C 言語の手続き型プログラミングを実行できるだけでなく、その他のプログラミングも実行できます。抽象データ型を特徴とするオブジェクトベースのプログラミングは、継承とポリモーフィズムを特徴とするオブジェクト指向プログラミングにも使用できます。 C はオブジェクト指向プログラミングが得意ですが、プロセスベースのプログラミングも実行できるため、対応できる問題の規模が大きいか小さいかが異なります。

C は、効率的なコンピュータ操作の実用的な機能を備えているだけでなく、大規模プログラムのプログラミング品質とプログラミング言語の問題記述能力の向上にも取り組んでいます。

C 大文字と小文字を変換するには、いくつかのアイデアがあります。

アイデア 1. ASCII の文字テーブルに従って変換します。

C++ で大文字と小文字を変換するためのアイデアはいくつありますか?

表からわかるように、対応する大文字と小文字の違いは 32 であり、そこから次のプログラミングのアイデアを導き出すことができます。

##プログラム 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;
}

プログラム 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: 大文字と小文字の変換機能を使用して、次のプログラミング アイデアを導き出すことができます。これから:

プログラム 2.1 簡易バージョン

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

プログラム 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;
 
}

の使用プログラム 2.3 関数 toupper、to lower

の使用

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

プログラム 2.4 トランスフォームを使用して to lower および 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;
}

プログラム 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 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。