给定一个字符串,编写一个函数,使用位运算符返回字符串的大小写。 在里面 ASCII码 代码中,字符“A”是整数65=(0100 0001)2,而字符“A”是整数97=(0110 0001)2。类似地,字符“D”是整数68=(0100 0100)2,而字符“D”是整数100=(0110 0100)2。
null
正如我们所看到的,“A”和“A”的ASCII码中只有第六个最低有效位不同。类似的行为可以在“D”和“D”的ASCII码中看到。因此,我们需要切换这个位来切换大小写。
例如:
Input : "GeekSfOrgEEKs"Output : "gEEKsFoRGeekS" Input : "StRinG"Output : "sTrINg"
这个 ASCII表 以这样的方式构造,小写字母的二进制表示几乎与大写字母的二进制表示相同。
切换箱 第6个LSB为1的整数为32(0010 0000)。因此,字符的32位异或将切换字符的第6个LSB,从而切换其大小写。如果字符是大写,它将转换为小写,反之亦然。
C++
// C++ program to get toggle case of a string #include <bits/stdc++.h> using namespace std; // tOGGLE cASE = swaps CAPS to lower // case and lower case to CAPS char *toggleCase( char *a) { for ( int i = 0; a[i] != ' ' ; i++) { // Bitwise EXOR with 32 a[i] ^= 32; } return a; } // Driver Code int main() { char str[] = "CheRrY" ; cout << "Toggle case: " << toggleCase(str) << endl; cout << "Original string: " << toggleCase(str) << endl; return 0; } // This code is contributed by noob2000 |
C
// C program to get toggle case of a string #include <stdio.h> // tOGGLE cASE = swaps CAPS to lower // case and lower case to CAPS char *toggleCase( char *a) { for ( int i=0; a[i]!= ' ' ; i++) { // Bitwise EXOR with 32 a[i] ^= 32; } return a; } // Driver Code int main() { char str[] = "CheRrY" ; printf ( "Toggle case: %s" , toggleCase(str)); printf ( "Original string: %s" , toggleCase(str)); return 0; } |
JAVA
// program to get toggle case of a string public class Test { static int x= 32 ; // tOGGLE cASE = swaps CAPS to lower // case and lower case to CAPS static String toggleCase( char [] a) { for ( int i= 0 ; i<a.length; i++) { // Bitwise EXOR with 32 a[i]^= 32 ; } return new String(a); } /* Driver program */ public static void main(String[] args) { String str = "CheRrY" ; System.out.print( "Toggle case: " ); str = toggleCase(str.toCharArray()); System.out.println(str); System.out.print( "Original string: " ); str = toggleCase(str.toCharArray()); System.out.println(str); } } |
Python3
# Python3 program to get toggle case of a string x = 32 ; # tOGGLE cASE = swaps CAPS to lower # case and lower case to CAPS def toggleCase(a): for i in range ( len (a)): # Bitwise EXOR with 32 a = a[:i] + chr ( ord (a[i]) ^ 32 ) + a[i + 1 :]; return a; # Driver Code str = "CheRrY" ; print ( "Toggle case: " , end = ""); str = toggleCase( str ); print ( str ); print ( "Original string: " , end = ""); str = toggleCase( str ); print ( str ); # This code is contributed by 29AjayKumar |
C#
// C# program to get toggle case of a string using System; class GFG { // tOGGLE cASE = swaps CAPS to lower // case and lower case to CAPS static string toggleCase( char []a) { for ( int i = 0; i < a.Length; i++) { // Bitwise EXOR with 32 a[i] ^= ( char )32; } return new string (a); } /* Driver program */ public static void Main() { string str = "CheRrY" ; Console.Write( "Toggle case: " ); str = toggleCase(str.ToCharArray()); Console.WriteLine(str); Console.Write( "Original string: " ); str = toggleCase(str.ToCharArray()); Console.Write(str); } } // This code is contributed by nitin mittal. |
Javascript
<script> // program to get toggle case of a string x = 32; // tOGGLE cASE = swaps CAPS to lower // case and lower case to CAPS function toggleCase(a) { for (i = 0; i < a.length; i++) { // Bitwise EXOR with 32 a[i] = String.fromCharCode(a[i].charCodeAt(0)^32); } return a.join( "" );; } /* Driver program */ var str = "CheRrY" ; document.write( "Toggle case: " ); str = toggleCase(str.split( '' )); document.write(str); document.write( "<br>Original string: " ); str = toggleCase(str.split( '' )); document.write(str); // This code is contributed by Princi Singh </script> |
输出:
Toggle case: cHErRyOriginal string: CheRrY
感谢库马尔·高拉夫对解决方案的改进。 类似条款: C/C中使用位运算符的字符串大小写转换++ 本文由 桑杰·库马尔·乌尔沙 从…起 海得拉巴JNTUH工程学院 .如果你喜欢GeekSforgek,并想贡献自己的力量,你也可以使用 写极客。组织 或者把你的文章寄到contribute@geeksforgeeks.org.看到你的文章出现在Geeksforgeks主页上,并帮助其他极客。 如果您发现任何不正确的地方,或者您想分享有关上述主题的更多信息,请写下评论。
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END