gpt4 book ai didi

c - 如何将 C 输入中的第一个字符大写?

转载 作者:行者123 更新时间:2023-11-30 20:46:45 25 4
gpt4 key购买 nike

我的输出不会将空格字符 (' ') 之后的下一个参数大写。

int main(void)
{
int i = 0;
int flag = OUT;
char name[100];
int leng = strlen(name);

printf("Value pls: \n");
fgets(name, 100, stdin);
printf("%c", toupper(name[0]));

while(name[i])
{
printf("%c", name[i + 1]);
if(i == ' ')
{
printf("%c", toupper(name[i + 1]));
}
i++;
}
}

它总是显示这样的内容:请值:乔恩·史密斯乔恩·史密斯

单词“smith”始终为小写。

最佳答案

“摆弄”循环计数器的想法通常是不明智的。这绝对是为了你想在这里做的工作。规范方法是使用标志。大致轮廓:

int wasspace = 1; // to capitalize the *first* character
for (i=0; name[i]; ++i)
{
printf("%c", wasspace ? toupper((unsigned char)name[i]) : name[i]);
wasspace = (name[i] == ' ');
// maybe better: wasspace = isspace((unsigned char)name[i]);
// so you handle tabs, newlines etc. as well
}
<小时/>

顺便说一句,您的问题的一部分是这一行:

    if(i == ' ')

i 是您的循环计数器,不是您的名称中的第 i 个字符。将其与空间进行比较是没有意义的。

关于c - 如何将 C 输入中的第一个字符大写?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47350489/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com