对于执行过程一窍不通…

#include <stdio.h>
main( )
{
char b[]="happychris", k;
for (k=0; b[k]; k++)
{
if(b[k]< 'm')b[k]= b[k]-'a'+'A';
printf("%c", b[k]);}}

happychris

b[0]:h
k=0  b[k]=h<'m'
b[0]-'a'+'A'后:H

b[1]:a
k=1  b[k]=a<'m'
b[1]-'a'+'A'后:A

b[2]:p
b[k]>='m'

b[3]:p
b[k]>='m'

b[4]:y
b[k]>='m'

b[5]:c
k=5  b[k]=c<'m'
b[5]-'a'+'A'后:C

b[6]:h
k=6  b[k]=h<'m'
b[6]-'a'+'A'后:H

b[7]:r
b[k]>='m'

b[8]:i
k=8  b[k]=i<'m'
b[8]-'a'+'A'后:I

b[9]:s
b[k]>='m'

测试代码


#include <stdio.h>
main( )
{
    char b[]="happychris", k;
    puts(b);
    printf("\n");
    for (k=0; b[k]; k++)
    {
        printf("b[%d]:%c\n",k,b[k]);
        if(b[k]< 'm')
        {
            printf("k=%d  b[k]=%c<'m'\n",k,b[k]);
            b[k]= b[k]-'a'+'A';
            printf("b[%d]-'a'+'A'后:%c\n",k, b[k]);
        }
        else
        {
        printf("b[k]>='m'\n");
        }
        printf("\n");
    }
}



#include <stdio.h>
int main()
{
    char b[] = "happychris", k;
    for (k = 0; b[k]; k++)//循环指导b[k]为空时结束,从h开始向后读取字符串b,指导结束
    {
        if (b[k] < 'm')      //b[k]比‘m’小时切换大小写
            b[k] = b[k] - 'a' + 'A';
        printf("%c", b[k]); //输出b[k]的值
    }
    return 0;
}

将小于m的字母小写字母转为大写字母