从小写到大写——一个有趣的事实

问题:给定一个只包含小写字母的字符串,生成一个字母相同但大写的字符串。

null
Input : GeeksForGeeksOutput : GEEKSFORGEEKS 

我们想到的第一个方法是

C++

// C++ program to convert a string to uppercase
#include <iostream>
using namespace std;
// Converts a string to uppercase
string to_upper(string &in)
{
for ( int i = 0; i < in.length(); i++)
if ( 'a' <= in[i] <= 'z' )
in[i] = in[i] - 'a' + 'A' ;
return in;
}
// Driver code
int main()
{
string str = "geeksforgeeks" ;
cout << to_upper(str);
return 0;
}


JAVA

// Java program to convert a string to uppercase
class GFG
{
// Converts a string to uppercase
static String to_upper( char [] in)
{
for ( int i = 0 ; i < in.length; i++)
{
if ( 'a' <= in[i] & in[i] <= 'z' )
{
in[i] = ( char ) (in[i] - 'a' + 'A' );
}
}
return String.valueOf(in);
}
// Driver code
public static void main(String[] args)
{
String str = "geeksforgeeks" ;
System.out.println(to_upper(str.toCharArray()));
}
}
// This code is contributed by PrinciRaj1992


Python3

# Python3 program to convert a string to uppercase
# Converts a string to uppercase
def to_upper(string):
for i in range ( len (string)):
if ( 'a' < = string[i] < = 'z' ):
string = (string[ 0 :i] + chr ( ord (string[i]) -
ord ( 'a' ) + ord ( 'A' )) +
string[i + 1 :])
return string;
# Driver code
if __name__ = = '__main__' :
str = "geeksforgeeks" ;
print (to_upper( str ));
# This code is contributed by Rajput-Ji


C#

// C# program to convert a string to uppercase
using System;
class GFG
{
// Converts a string to uppercase
static String to_upper( char []In)
{
for ( int i = 0; i < In.Length; i++)
{
if ( 'a' <= In[i] & In[i] <= 'z' )
{
In[i] = ( char ) (In[i] - 'a' + 'A' );
}
}
return String.Join( "" , In);
}
// Driver code
public static void Main()
{
String str = "geeksforgeeks" ;
Console.WriteLine(to_upper(str.ToCharArray()));
}
}
// This code is contributed by 29AjayKumar


Javascript

<script>
// JavaScript program to convert a string to uppercase
// Converts a string to uppercase
function to_upper(input)
{
var result = new Array(input.length);
for ( var i = 0; i < input.length; i++)
if ( "a" .charCodeAt(0) <= input[i].charCodeAt(0) <= "z" .charCodeAt(0))
result[i] = String.fromCharCode(
input[i].charCodeAt(0) - "a" .charCodeAt(0) + "A" .charCodeAt(0)
);
return result.join( "" ).toString();
}
// Driver code
var str = "geeksforgeeks" ;
document.write(to_upper(str));
// This code is contributed by rdtank.
</script>


输出:

GEEKSFORGEEKS

另一方面,一个更有趣的解决方案是:

C++

// C++ program to convert a string to uppercase
#include <iostream>
using namespace std;
// Converts a string to uppercase
string to_upper(string &in)
{
for ( int i = 0; i < in.length(); i++)
if ( 'a' <= in[i] <= 'z' )
in[i] &= ~(1 << 5);
return in;
}
// Driver code
int main()
{
string str = "geeksforgeeks" ;
cout << to_upper(str);
return 0;
}


JAVA

// Java program to convert a string to uppercase
class GFG
{
// Converts a string to uppercase
static String to_upper( char [] in)
{
for ( int i = 0 ; i < in.length; i++)
if ( 'a' <= in[i] && in[i] <= 'z' )
in[i] &= ~( 1 << 5 );
return String.valueOf(in);
}
// Driver code
public static void main(String[] args)
{
String str = "geeksforgeeks" ;
System.out.println(to_upper(str.toCharArray()));
}
}
// This code is contributed by Rajput-Ji


Python3

# Python3 program to convert
# a string to uppercase
# Converts a string to uppercase
def to_upper(s):
for i in range ( len (s)):
if ( 'a' < = s[i] < = 'z' ):
s = s[ 0 :i] + chr ( ord (s[i]) &
(~( 1 << 5 ))) + s[i + 1 :];
return s;
# Driver code
if __name__ = = '__main__' :
string = "geeksforgeeks" ;
print (to_upper(string));
# This code is contributed by PrinciRaj1992


C#

// C# program to convert a string to uppercase
using System;
class GFG
{
// Converts a string to uppercase
static String to_upper( char [] str)
{
for ( int i = 0; i < str.Length; i++)
if ( 'a' <= str[i] && str[i] <= 'z' )
str[i] = ( char )(( int )str[i]&(~(1 << 5)));
return String.Join( "" , str);
}
// Driver code
public static void Main(String[] args)
{
String str = "geeksforgeeks" ;
Console.WriteLine(to_upper(str.ToCharArray()));
}
}
// This code is contributed by PrinciRaj1992


Javascript

<script>
// Javascript program to convert
// a string to uppercase
// Converts a string to uppercase
function to_upper(In)
{
let n = In.length;
for (let i = 0; i < In.length; i++)
if ( 'a' <= In[i] && In[i] <= 'z' )
In[i] = String.fromCharCode(
In[i].charCodeAt(0) & (~(1 << 5)));
return (In).join( "" );
}
// Driver code
let str = "geeksforgeeks" ;
document.write(to_upper(str.split( "" )));
// This code is contributed by rag2127
</script>


输出:

GEEKSFORGEEKS

说明: 这个 ASCII表 以这样的方式构造,小写字母的二进制表示几乎与大写字母的二进制表示相同。唯一的区别是第六位,只为小写字母设置。这个优雅函数的作用是取消[i]中索引5的位,从而使该字符小写。

缺点: 这种策略只适用于按字母顺序排列的字符。如果输入包含数字或标点符号,我们将不得不使用简单的方式。

例子: 字符“A”是整数65=(0100 0001)2,而字符“A”是整数97=(0110 0001) 2. (注意97-65=32,你能猜出原因吗?)

练习:

  1. 编写一个函数,使字符串中的所有字母都小写。例子:Geeksforgeks变成了Geeksforgeks。
  2. 编写一个函数来改变字符串的大小写。例子:Geeksforgeks变成了Geeksforgeks。

本文由 伊戈尔卡帕尼斯酒店 .如果你喜欢GeekSforgek,并想贡献自己的力量,你也可以写一篇文章,然后将文章邮寄给评论-team@geeksforgeeks.org.看到你的文章出现在Geeksforgeks主页上,并帮助其他极客。

如果您发现任何不正确的地方,或者您想分享有关上述主题的更多信息,请写评论

© 版权声明
THE END
喜欢就支持一下吧
点赞9 分享