c语言 字符串 大小写转换

如何把31个字以下的小写字母字符串全部转化为大写字母。

只会转换单个字母,求问怎么转换全是小写的字符串,谢谢

#include<stdio.h>

int main()
{

char str[31];

gets(str);

for (int j=0;j<31;j++){
    if (str[j]>='a'&&str[j]<='z')
        str[j] -= 32;
}

printf("%s",str);

return 0;
}

_strupr(),将字符串字母全部转大写,string.h头文件

#include <stdio.h>
#include <string.h>
/*
字符串字母转小写 
字符串字母转大写 
*/ 
void zhuanxiaoxie(char str[],int len)
{
    for(int i=0;i<len;i++)
    {
        if(str[i]<='Z'&&str[i]>='A')
        {
            str[i]+=32;
        }
    }
} 
void zhuandaxie(char str[],int len)
{
    for(int i=0;i<len;i++)
    {
        if(str[i]<='z'&&str[i]>='a')
        {
            str[i]-=32;
        }
    }
}
int main()
{
    char str[255];
    gets(str);
    int len=strlen(str);
    zhuanxiaoxie(str,len);
    puts(str);
    zhuandaxie(str,len);
    puts(str);
    return 0;
}