/*change the case of each alphabet in this String. */
#include <stdio.h>
#include<string.h>
int main()
{
char a[100],b,c;
int i;
scanf("%s",a);
int len=strlen(a);
for(i=0;i<len;i++)
{ c=a[i];
b='c';
if(b<91)
b=b+32;
else if(b>96)
b=b-32;
'c'=b; /*error*/
a[i]=c;
}
printf("%s",a);
return 0;
}
我想将字符串的每个变量更改为相应的大写或小写(例如输入:adsE 输出:ADSe) 所以我通过改变变量的 ASCII 值来尝试它, 但我无法将新的 ASCII 值放回原始变量。 我应该怎么做?
最佳答案
首先,变量c
和字符'c'
无论如何都不相关。您可以像 c = 'a'
一样分配给 c
但您不能分配给 'c'
- 就像您不能分配一样到一个数字,例如9 = 42
将失败。
但是,没有必要使用变量b
和c
。直接对a
进行操作即可。喜欢
if (a[i] < 91)
a[i] = a[i] + 32;
else if (a[i] > 94) // Hmm, should this be 96?
a[i] = a[i] - 32;
您可以像这样改进代码:
if ((a[i] >= 'A') && (a[i] <= 'Z'))
a[i] = a[i] + 32;
else if ((a[i] >= 'a') && (a[i] <= 'z'))
a[i] = a[i] - 32;
关于c - 如何通过更改其 ascii 值来更改变量的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41522289/