gpt4 book ai didi

将字符串句子转换为小写

转载 作者:行者123 更新时间:2023-11-30 20:29:13 24 4
gpt4 key购买 nike

有人可以告诉我为什么我没有将整个句子转换为小写吗?只是第一个字符串直到它找到空间?我有

void uppertolower(char *STR)
for(unsigned int i =0;i<=strlen(sentence);i++)
{
if(*STR>='A' && *STR<='Z')
{
*STR=*STR+32;
STR++;
}
}

此代码由类似 HELLo WOrld 的句子组成

Sencte 看起来像:hello WOrld

我的问题是我应该添加或更改什么以使整个 HEllo WOrld 变为小写?

最佳答案

正如评论所说:这句话是什么?你的i应该专门从0strlen(STR)意义

// "<" Not "<=" or you could segfault in more complex programs.

for (int i = 0; i < strlen(STR); i++)

在您的示例中,它不转换整个句子的原因是因为您的指针 STR 仅在满足条件时才会递增,这意味着它将卡在第一个小字母上你的发现,所以它实际上卡在字母l上而不是空格上。

把它们放在一起。

void uppertolower(char *STR)
{
for (int i = 0; i < strlen(STR); i++)
{
if (*STR >= 'A' && *STR <= 'Z')
{
*STR = *STR + 32;
}
STR++;
}
}

如果您有兴趣,另一种方法是:

void uppertolower(char *STR)
{
while (*STR) // Same as while (*STR != '\0')
{
if (*STR >= 'A' && *STR <= 'Z')
{
*STR = *STR + 32;
}
STR++;
}
}

或者像这样

void uppertolower(char *STR)
{
for (int i = 0; i < strlen(STR); i++)
{
if (STR[i] >= 'A' && STR[i] <= 'Z')
{
STR[i] = STR[i] + 32;
}
}
}

如果您正在学习如何使用 c 语言进行编码,请查看推荐的 C 风格和编码标准。(或者至少是命名约定)。 https://www.doc.ic.ac.uk/lab/cplus/cstyle.html#N103FD

关于将字符串句子转换为小写,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58684381/

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