gpt4 book ai didi

c - C中字符串的大小写转换

转载 作者:行者123 更新时间:2023-12-04 10:44:52 25 4
gpt4 key购买 nike

基本上,我必须将所有小写字母转换为大写字母,但我想我会稍微扩展一下示例。所以我当前的代码将当前情况更改为相反的情况:

#include <stdio.h>
#include <ctype.h>

int main()
{
int i=0;
char str[] = "Test String";
char c;

while (str[i])
{
if (isupper(str[i])){
c=str[i];
putchar(tolower(c));
i++;
} else if (islower(str[i])){
c=str[i];
putchar(toupper(c));
i++;
}
}
return 0;
}

在没有空格字符或定界符时工作正常。以上将只输出 tEST,而我希望它处理整个字符串并返回 tEST sTRING。我怎样才能做到这一点?

最佳答案

您需要包括字符不满足两个条件的情况:

while (str[i])
{
if (isupper(str[i])){
c=str[i];
putchar(tolower(c));
i++;
} else if (islower(str[i])){
c=str[i];
putchar(toupper(c));
i++;
} else {
c=str[i];
putchar(c);
i++;
}
}

否则,程序会“卡住”在空间上,永远不会前进 i,也不会打印出任何东西。


这个程序还可以简化。目前有很多重复。这是一个更简单的版本:

char str[] = "Test String";

for (int i = 0; str[i]; i++)
{
putchar(isupper(str[i]) ? tolower(str[i]) : toupper(str[i]));
}
return 0;

关于c - C中字符串的大小写转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27517484/

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