关于#c语言#的问题:这个首字母大写的问题

img

img

img

img


c语言,这个首字母大写的问题,为什么会显示错误啊,实在是不知道了,求解

供参考:

#include<stdio.h>
#include<ctype.h>
int main()
{
    char a[100+1], c;
    int i;
    gets(a);
    if (a[0] != ' ') {
        if (islower(a[0]))//判断s[0]是单词开始
            a[0] = toupper(a[0]);
    }
    for (i = 0; (c = a[i]) != '\0'; i++)
    {
        if (c == ' ' && a[i + 1] != ' ') {//判断s[i+1]是一个单词的开始
            if (islower(a[i + 1]))//判断是否是小写字符
                a[i + 1] = toupper(a[i + 1]);
        }
    }
    puts(a);
    return 0;
}

另一种写法:

#include<stdio.h>
int main()
{
    int i;
    char s[101];
    gets(s);
    for(i=0;s[i]!='\0';i++)
    {
        if(i==0 && s[i]>='a' && s[i]<='z')
           s[i] = s[i]-32;
        else if(s[i]>='a' && s[i]<='z' && s[i-1]==' ')
           s[i] = s[i]-32;
    }
    puts(s);
    return 0;
}