gpt4 book ai didi

c - 尝试在不使用函数的情况下在 C 中将大写字符转换为小写字符

转载 作者:太空宇宙 更新时间:2023-11-04 01:59:44 25 4
gpt4 key购买 nike

我试图在不使用函数的情况下将 char 元素从 char *argv[] 数组从大写字母转换为小写字母。我想将 32 添加到 ascii 整数。

当我尝试将变量作为参数传递时,它会显示整数和,但不会显示新的小写字符。相反,它显示以下输出:

letter h, 104
tolower: 136, �

代码:

int i = 0;
for(i = 0; argv[1][i] != '\0'; i++) {
char letter = argv[1][i];

printf("letter %c, %i\n", letter, letter);
char tolower = argv[1][i];
int lowercase = tolower + 32;

printf("tolower: %i, %c\n", lowercase, lowercase);
}

为什么要打印一个“?”字符?

最佳答案

首先,不要假设您使用的是 ascii 字符集(即 32 在某些字符集中是错误的附加值)。您遇到的问题是“h”+ 32 不是小写的“h”。 'h' 已经是小写字母,所以你想添加 0。检查它;像这样的东西:

if( tolower >= 'A' && tolower <= 'Z' )
tolower += 'a' - 'A';

关于c - 尝试在不使用函数的情况下在 C 中将大写字符转换为小写字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28908748/

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