gpt4 book ai didi

c - 不兼容的指针类型函数

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

我正在尝试学习C来发展我的编程技能,我正在尝试制作一种算法,可以将大写字母更改为小写字母,将小写字母更改为大写字母。在简单的算法中,我编写了这段代码,但出现错误发生在它上面,我的问题是编译器说“操作数类型不兼容”。这是什么意思?我将我的长度称为指针函数,以在地址中存储内存以输入控制台随机字符。错误发生在 i 小于 for 循环中的长度部分。我期待从您的回复中学到新东西。“int”和“int(*)char *s”)它说

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
#include <conio.h>

int length(char *s)
{
int i = 0;
int counter = 0;
while (s[i] != NULL)
{
i++;
counter++;
}
return counter;
}

void upperlower(char *s)
{
int i;
for (i = 0; i<length; i++)
{
if (s[i] >= 65 && s[i] <= 90)
s[i] += 32;
else if (s[i] >= 97 && s[i] <= 122)
s[i] -= 32;
}
}

int main()
{
printf("Please write down the character string: ");
scanf("%s", upperlower);
printf("The character string is %s", upperlower);
getch();
return 0;
}

最佳答案

您似乎对如何调用函数感到困惑。

当你这样做时:

for (i = 0; i<length; i++)

您没有调用length函数。您在表达式中使用函数的名称,因此您拥有的是函数指针。您需要添加函数调用操作数 () 以及要传入的参数:

for (i = 0; i<length(s); i++)

类似地,在 main 函数中,您实际上并没有调用 upperlower。此外,您永远不会定义字符数组来接收您想要读取的字符串。将该数组作为局部变量包含在内,将其传递给 scanf 以从用户处获取字符串,然后将其传递给函数。

char str[50];
printf("Please write down the character string: ");
scanf("%49s", str);
upperlower(str);
printf("The character string is %s", str);

关于c - 不兼容的指针类型函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43595017/

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