C语言如何用define将输入的一句话中字母大写变小写,小写变大写?
发布网友
发布时间:2022-04-29 03:01
我来回答
共1个回答
热心网友
时间:2023-10-08 17:42
//代码如下
#include<stdio.h>
#define U2L_L2U(str) \
{\
int i=0;\
while(str[i]!='\0'){\
if(str[i]>='A' && str[i]<='Z')\
str[i++]+=32;\
else if(str[i]>='a' && str[i]<='z')\
str[i++]-=32;\
}\
}
//测试主函数
int main()
{
char str[255];
scanf("%s",str);
U2L_L2U(str)
printf("str = %s\n",str);
return 0;
}
//示例运行结果
F:\c_work>a.exe
AAbbCCdd
str = aaBBccDD
追问
好像不行啊
追答
哦哦,你的输入有空格,我是用scanf()函数输入的字符串,输入不能有空格的,遇到空格就停止了的,这是scanf()函数输入的特点,那你改成gets()函数吧,加上头文件
#include<string.h>
#include<stdio.h>
....
//测试主函数
int main()
{
char str[255];
//scanf("%s",str);
gets(str);
U2L_L2U(str)
printf("str = %s\n",str);
return 0;
}
热心网友
时间:2023-10-08 17:42
//代码如下
#include<stdio.h>
#define U2L_L2U(str) \
{\
int i=0;\
while(str[i]!='\0'){\
if(str[i]>='A' && str[i]<='Z')\
str[i++]+=32;\
else if(str[i]>='a' && str[i]<='z')\
str[i++]-=32;\
}\
}
//测试主函数
int main()
{
char str[255];
scanf("%s",str);
U2L_L2U(str)
printf("str = %s\n",str);
return 0;
}
//示例运行结果
F:\c_work>a.exe
AAbbCCdd
str = aaBBccDD
追问
好像不行啊
追答
哦哦,你的输入有空格,我是用scanf()函数输入的字符串,输入不能有空格的,遇到空格就停止了的,这是scanf()函数输入的特点,那你改成gets()函数吧,加上头文件
#include<string.h>
#include<stdio.h>
....
//测试主函数
int main()
{
char str[255];
//scanf("%s",str);
gets(str);
U2L_L2U(str)
printf("str = %s\n",str);
return 0;
}
热心网友
时间:2023-10-08 17:42
//代码如下
#include<stdio.h>
#define U2L_L2U(str) \
{\
int i=0;\
while(str[i]!='\0'){\
if(str[i]>='A' && str[i]<='Z')\
str[i++]+=32;\
else if(str[i]>='a' && str[i]<='z')\
str[i++]-=32;\
}\
}
//测试主函数
int main()
{
char str[255];
scanf("%s",str);
U2L_L2U(str)
printf("str = %s\n",str);
return 0;
}
//示例运行结果
F:\c_work>a.exe
AAbbCCdd
str = aaBBccDD
追问
好像不行啊
追答
哦哦,你的输入有空格,我是用scanf()函数输入的字符串,输入不能有空格的,遇到空格就停止了的,这是scanf()函数输入的特点,那你改成gets()函数吧,加上头文件
#include<string.h>
#include<stdio.h>
....
//测试主函数
int main()
{
char str[255];
//scanf("%s",str);
gets(str);
U2L_L2U(str)
printf("str = %s\n",str);
return 0;
}