首先大小写相差32,转换的话自己写函数也是可以写出来的。
1、字母
如果是字母转的话,用toupper(),tolower()
头文件是
char a='a';2 char b;3 b=toupper(a);
不过要注意是有返回值的。
2、字符串
strupr()
strlwr()
头文件不说也应该很熟悉
这两个的返回值是原字符串的指针。
扩展资料
字母大小写转换这类题目主要通过ASCII(美国信息交换标准代码)码差值实现,A对应ASCII码十进制数字是65,a对应ASCII码十进制数字是97,即大小写字母之间ASCII码差值为32。
想要将大写字母转换为小写字母可以将该字符ASCII码值+32,同理小写字母转换成大写字母只需将该字符ASCII码值-32。
算法思想
由于大写字母与小写字母之间的差值为 32,因此小写字母转换为大写字母的方法就是将小写字母的 ASCII 码值减去 32,便可得到与之对应的大写字母。
利用 getchar 函数从键盘上输入一个小写字母,并将其赋给一个字符变量 a;然后将 a—32 的值赋给字符变量 b;最后进行输出,输出时先输出字母,再将字母以整数形式输出。其具体步骤如下:
① 定义两个字符变量 a、b;
② a=get char();
③ b=a—32;
④ 打印输出。
strupr ()
原型:extern char *strupr(char *s);
用法:#include
功能:将字符串s转换为大写形式
说明:只转换s中出现的小写字母,不改变其它字符。返回指向s的指针。
strlwr ()
原型:extern char *strlwr(char *s);
用法:#include
功能:将字符串s转换为小写形式
说明:只转换s中出现的大写字母,不改变其它字符。返回指向s的指针。
注意事项:在Linux的编译器中,有可能会编译不通过。
有问题请追问
strupr ()
原型:extern char *strupr(char *s);
用法:#include
功能:将字符串s转换为大写形式
说明:只转换s中出现的小写字母,不改变其它字符。返回指向s的指针。
strlwr ()
原型:extern char *strlwr(char *s);
用法:#include
功能:将字符串s转换为小写形式
说明:只转换s中出现的大写字母,不改变其它字符。返回指向s的指针。
注意事项:在Linux的编译器中,有可能会编译不通过。
#include
using namespace std;
int main( )
{
char a[1000];
cin>>a;
for(int i=0;a[i]!='\0';i++)
{
(a[i]>='A'&&a[i]<='Z')?a[i]+=32:a[i]-=32;
}
for(i=0 ;a[i]!='\0';i++)
{
cout<}
cout<
return 0;
}
个人建议,如果能使用指针也可以的。
#include
using namespace std;
int main()
{
char a[20];
int i=0;
cout<<"请输入一串字符:\n";
cin>>a;
for(;a[i];i++)
{
if(a[i]>'a'&&a[i]<'z')
a[i]-=32;
else if(a[i]>'A'&&a[i]<'Z')
a[i]+=32;
}
for(i=0;a[i];i++)
cout<cout<
}