Если у вас есть массив с типом элемента std::string
, подобный этому
std::string word[] = { "VERY", "MERRY", "CHRISTMAS", "EVERYONE" };
, то вы можете преобразовать все его элементы, например, в нижний регистр, следующим образом, используя диапазон на основе l oop
#include <string>
#include <cctype>
//…
for ( auto &s : word )
{
for ( char &c : s ) c = tolower( ( unsigned char )c );
}
Вот демонстрационная программа.
#include <iostream>
#include <string>
#include <cctype>
int main()
{
std::string word[] = { "VERY", "MERRY", "CHRISTMAS", "EVERYONE" };
for ( const auto &s : word ) std::cout << s << ' ';
std::cout << '\n';
for ( auto &s : word )
{
for ( char &c : s ) c = std::tolower( ( unsigned char )c );
}
for ( const auto &s : word ) std::cout << s << ' ';
std::cout << '\n';
for ( auto &c : word[0] ) c = std::toupper( ( unsigned char )c );
for ( const auto &s : word ) std::cout << s << ' ';
std::cout << '\n';
}
Ее вывод
VERY MERRY CHRISTMAS EVERYONE
very merry christmas everyone
VERY merry christmas everyone
Или вы можете использовать пользовательскую функцию, подобную этой.
#include <iostream>
#include <string>
#include <cctype>
std::string & change_string_case( std::string &s, bool upper_case = true )
{
for ( auto &c : s ) c = upper_case ? std::toupper( static_cast<unsigned char>( c ) )
: std::tolower( static_cast<unsigned char>( c ) );
return s;
}
int main()
{
std::string word[] = { "VERY", "MERRY", "CHRISTMAS", "EVERYONE" };
for ( auto &s : word ) std::cout << change_string_case( s, false ) << ' ';
std::cout << '\n';
}
Вывод программы:
very merry christmas everyone
Или вы можете написать две отдельные функции, например,
#include <iostream>
#include <string>
#include <cctype>
std::string & lowercase_string( std::string &s )
{
for ( auto &c : s ) c = std::tolower( static_cast<unsigned char>( c ) );
return s;
}
std::string & uppercase_string( std::string &s )
{
for ( auto &c : s ) c = std::toupper( static_cast<unsigned char>( c ) );
return s;
}
int main()
{
std::string word[] = { "VERY", "MERRY", "CHRISTMAS", "EVERYONE" };
for ( auto &s : word ) std::cout << lowercase_string( s ) << ' ';
std::cout << '\n';
for ( auto &s : word ) std::cout << uppercase_string( s ) << ' ';
std::cout << '\n';
}
Вывод программы:
very merry christmas everyone
VERY MERRY CHRISTMAS EVERYONE