我正在尝试编写一个程序,它只会比较相同大小写的字母,但是首先它应该将任何大小写转换为特定的大小写。
但是我在使用函数将字符串转换为任何特定大小写时遇到了问题,尽管我已经弄清楚如何在没有函数的情况下完成这个任务。这是我的代码。有谁能帮我找出我哪里错了吗?
#include<stdio.h>
#include<string.h>
void order(char input[])
{
int i=0;
while(input[i]!='\0')
{
if(input[i]>'65' && input[i]<'92')
{
input[i]+=32;
// printf("WORKING\n");
}
i++;
}
}
int main()
{
char input1[101], output1[101];
char input2[101], output2[101];
int r;
scanf("%s",tolower(input1));
scanf("%s",input2);
order(input1);
order(input2);
printf("%s\n",input1);
printf("%s\n",input2);
/*
r=strcmp(output1,output2);
if(r<0)
printf("-1\n");
else if(r>0)
printf("1\n");
else
printf("0\n");
*/
}
'A'
用于[A-Z]是不连续的,因此if()
是错误的代码。2)源代码和编码文件字符的字符编码可能不同。但对于学习者来说,使用'A'
和65
相比较更好理解。 - chux - Reinstate Monica