eobeom 发表于 2020-10-5 10:30:41

小白求助 如何将一句话每个单词的第一个字母变成大写

#include <stdio.h>
// You can add your own functions if necessary
void capitalize_first_character(char str) {
        // 补充程序
}

int main(void) {
        char str;
       
        gets(str);
       
        capitalize_first_character(str);
        return 0;
}

如何将一句话每个单词的第一个字母变成大写?
ex:i love you,my darling->I Love You,My Darling.

巴巴鲁 发表于 2020-10-5 12:09:36

a~z:
ch - 'a' + 'A';
A~Z
ch - 'A' +'a'

召唤风云 发表于 2020-10-6 23:02:42

我写伪代码
if(str<='z'&&str>='a')str-=32;//首个字母分类讨论
int j=1;
while(str!='\n')
{
        //对每个字母,如果前一个字符是空格,那就把它变大写
        if(str==' '&&str<='z'&&str>='a')str-=32;
}

召唤风云 发表于 2020-10-6 23:07:31

召唤风云 发表于 2020-10-6 23:02
我写伪代码
if(str='a')str-=32;//首个字母分类讨论
int j=1;


上面有点问题
if(str<='z'&&str>='a')str-=32;//首个字母分类讨论
int j=1;
while(str!='\n')
{
        //对每个字母,如果前一个字符不是字母,那就把它变大写
        if(str<='z'&&str>='a');
        else if(str<='Z'&&str>='A');
        //前一个字符不是字母,这个字符是字母
        else if(str<='z'&&str>='a')str-=32;
}
页: [1]
查看完整版本: 小白求助 如何将一句话每个单词的第一个字母变成大写