如何通过更改ascii值来更改变量的值? /*更改此字符串中每个字母的大小写。*/ #包括 #包括 int main() { 字符a[100],b,c; int i; scanf(“%s”,a); int len=strlen(a); 对于(i=0;i

如何通过更改ascii值来更改变量的值? /*更改此字符串中每个字母的大小写。*/ #包括 #包括 int main() { 字符a[100],b,c; int i; scanf(“%s”,a); int len=strlen(a); 对于(i=0;i,c,C,如果你 首先,变量c和字符'c'在任何情况下都是不相关的。您可以像c='a'那样分配给'c',但您不能分配给'c'——就像您不能分配给数字一样,例如9=42将失败 但是,不需要使用变量b和c。您只需直接在a上操作即可 if (islower(ch)) ch = toupper(ch); else if (isupper(ch)) ch = tolower(ch); if(a[i]94)//嗯,这应该是96吗? a[i]=a[i]-32; 您可以对代码进行如下改进: if (

如果你


首先,变量
c
和字符
'c'
在任何情况下都是不相关的。您可以像
c='a'
那样分配给
'c'
,但您不能分配给
'c'
——就像您不能分配给数字一样,例如
9=42
将失败

但是,不需要使用变量
b
c
。您只需直接在
a
上操作即可

if      (islower(ch)) ch = toupper(ch);
else if (isupper(ch)) ch = tolower(ch);
if(a[i]<91)
a[i]=a[i]+32;
否则如果(a[i]>94)//嗯,这应该是96吗?
a[i]=a[i]-32;
您可以对代码进行如下改进:

    if (a[i] < 91)
         a[i] = a[i] + 32;
    else if (a[i] > 94)    // Hmm, should this be 96?
        a[i] = a[i] - 32;

如果((a[i]>='a')&(a[i]='a')&(a[i]='a')&(a[i]首先变量
c
和字符
'c'
没有任何关系。你可以像
c='a'
那样分配给
'c'
,但你不能分配给
'c'
——就像你不能分配给数字一样,例如
9=42
会失败

但是,不需要使用变量
b
c
。您只需直接在
a
上操作即可

if      (islower(ch)) ch = toupper(ch);
else if (isupper(ch)) ch = tolower(ch);
if(a[i]<91)
a[i]=a[i]+32;
否则如果(a[i]>94)//嗯,这应该是96吗?
a[i]=a[i]-32;
您可以对代码进行如下改进:

    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]='a')&&(a[i]
'c'
是类型为
int
的文本值。您不能对其赋值,并且它与变量
c
没有任何有意义的关系。此外,尽管您的c实现可能使用ASCII或ASCII兼容字符编码,但c实现不需要这样做。
'c'
是一种文本类型为
int
的l值。您不能分配给它,并且它与变量
c
没有任何有意义的关系。此外,尽管您的c实现可能使用ASCII或与ASCII兼容的字符编码,但c实现不需要这样做。您可以这样做,但不应该这样做。c与ASCII无关。虽然通常可以合理地假设是这样,但最好使用标准函数
isalpha()
tolower()
,和
toupper()
。可以这样做,但不应该这样做。C与ASCII无关。虽然通常可以合理地假设它是,但最好使用标准函数
isalpha()
tolower()
toupper()
    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;