【问题标题】:Trying to return -1 or char试图返回 -1 或 char
【发布时间】:2021-12-24 03:00:39
【问题描述】:
void main() {
    int letter;
    letter = myToLower('v');
    printf("The new letter is: %c", letter);
}

int myToLower(char ch) {
    if (isupper(ch)) return tolower(ch); else return -1;
}

当我尝试大写时,程序工作并以小写返回字母,当我尝试小写时,程序不返回-1。 有人知道我怎样才能把他们两个都退回来吗?

【问题讨论】:

  • C 和 C++ 是两种不同的语言;请不要同时标记两者。我删除了 C++ 标记,因为您的代码看起来像 C,并且不会像编写的那样编译为 C++。
  • -1 的值%c 可能不是任何类似于该形状的字符。屏幕字符输出是系统依赖的,%c肯定不会输出“-1”。
  • 对我来说it works 或者你的意思是角色的显示方式?
  • if (letter != -1) printf("The new letter is: %c\n", letter); else printf("The letter is unchanged.\n");
  • 您是否考虑过原样返回ch

标签: c string function character


【解决方案1】:

问题是你正在返回一个-1 值,当printf 查看其中的%c 时,它查看相应的valist 参数,并找到-1。其输出取决于系统。解决方法是:(由 Eljay 给出)

if (letter != -1) 
{
    printf("The new letter is: %c\n", letter); 
}
else 
{
    printf("The letter is unchanged.\n");
}

通常最好使用大括号,因为这样更易于调试。您可以看到语句的开始和结束位置。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-10
    • 1970-01-01
    • 2011-03-28
    相关资源
    最近更新 更多