1、利用ASCII码和char s[100]
形式的字符串来进行字符串的大小写转换
相同字母的大写字母要比小写字母的ASCII码小32,例如A:65,a:97,也可以利用头文件<ctype.h>中的函数
#include<stdio.h>
int main() {
char s[100] = "zhongGUO";
//s[i] != '\0'也可以写成 s[i]
for(int i = 0; s[i] != '\0' ; i++) {
if (s[i] >= 'A' && s[i] <= 'Z') {
//大写A 65,小写a 97
//同一个字母的大写字母要比小写字母的ASCII码小32,因此
//大写转换小写需要加上32
s[i] += 32;//tolower()
}
else if (s[i] >= 'a' && s[i] <= 'z') {
//同理小写转换大写需要减去32
s[i] -= 32;//toupper()
}
}
for (int i = 0; s[i] != '\0'; i++) {
printf("%c",s[i]);//ZHONGguo
}
return 0;
}
2、利用指针的形式来进行大小写的转换
#include<stdio.h>
int main()
{
char s[20] = "zhongGUO";
char *p;
p = s;
while(*p!='\0')
{
if(*p>='a'&&*p<='z'){
*p = *p - 32;//作用等同于 *p = toupper(*p);
}else if(*p>='A'&&*p<='Z'){
*p = *p + 32;//作用等同于 *p = tolower(*p);
}
p++;
}
printf("%s\n",s);//ZHONGguo
return 0;
}
可以同等转换为:文章来源:https://www.toymoban.com/news/detail-505523.html
#include<stdio.h>
#include<ctype.h>
int main()
{
char s[20] = "zhongGUO";
char *p;
p = s;
while(*p!='\0')
{
if(islower(*p)){
*p = toupper(*p);
}else if(isupper(*p)){
*p = tolower(*p);
}
p++;
}
printf("%s\n",s);//ZHONGguo
return 0;
}
独立出函数来:文章来源地址https://www.toymoban.com/news/detail-505523.html
#include<stdio.h>
#include<ctype.h>
void ToUpper(char *p);
int main()
{
char s[20] = "zhongGUO";
char *p;
p = s;
ToUpper(p);
printf("%s\n",s);//ZHONGguo
return 0;
}
void ToUpper(char *p){
while(*p!='\0')
{
if(islower(*p)){
*p = toupper(*p);
}else if(isupper(*p)){
*p = tolower(*p);
}
p++;
}
}
到了这里,关于C/C++字符串大小写转换的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!