gpt4 book ai didi

使用 ASCII 将小写字母转换为大写字母

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

我正在尝试使用 ASCII 表将所有小写字母转换为大写字母!这很容易处理,我已经弄清楚了代码。问题是,如果单词之间有空格,那么程序只会更改第一个单词,空格之后不会打印任何内容。

示例
词:安德烈亚斯 给予:ANDREAS
单词:TeSt123Ha 给出:TEST123HA
但是!!!
单词:Hello 45 给出:HELLO
空格之后什么也不打印!

我知道 ASCII 表中的空间等于 32,并且在我的代码中我告诉程序,如果您正在读取的当前代码不在 97 到 122 之间,则不要执行任何更改!

但是还是不行!

char currentletter;
int i;

for (i=0; i<49; i++)
{
currentletter = str[i];

if ((currentletter > 96) && (currentletter < 123))
{
char newletter;
newletter = currentletter - 32;
str[i] = newletter;
}
else
{
str[i] = currentletter;
}
}
printf("%s\n", str);

最佳答案

翻转第五个最低位应该会有所帮助。

Each lowercase letter is 32 + uppercase equivalent. This means simply flipping the bit at position 5 (counting from least significant bit at position 0) inverts the case of a letter. https://web.stanford.edu/class/cs107/lab1/practice.html

char *str;
int str_size = sizeof(str);

for(int i=0; i<str_size;i++){
if((str[i]>96) && (str[i]<123)) str[i] ^=0x20;
}

关于使用 ASCII 将小写字母转换为大写字母,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25821178/

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