关于#c语言#的问题:输入一个长度小于80的字符串将小写字母转换为大写字母,则给出提示符

输入一个长度小于80的字符串将小写字母转换为大写字母,若没有小写字母,则给出提示符

img

img


请问这为什么不对?

C语言不能以数组做返回值,字符型数组、整型数组都不行,数组只能利用传参的时候传进去地址。
你传进去的参数,在函数里面修改就是修改的主函数里面的数组,不要写返回值,可以反回一个int整数,反回1表示有小写字母,反回0表示没有。

修改如下,供参考:

#include <stdio.h>
#include <string.h>
#define N 80
int  xd(char ch1[]);
int main()
{
    char ch[N];
    printf("Enter a string:");
    gets(ch);
    if (xd(ch) == 1)
        puts(ch);
    else
        printf("no lowercase");
    return 0;
}
int  xd(char ch1[])
{
    int i, c = 0;
    //char chw[N] = "no lowercase";
    for (i = 0; ch1[i] != '\0'; i++)
    {
        if (ch1[i] >= 'a' && ch1[i] <= 'z')
        {
            ch1[i] = ch1[i] - 32;
            c = 1;
        }
    }
    return c;
}