gpt4 book ai didi

c - 如何编写一个原型(prototype)为 'void convertstring(char *)' 的函数,在 C 中将小写字母转换为大写字母?

转载 作者:行者123 更新时间:2023-11-30 20:17:01 26 4
gpt4 key购买 nike

这是我写的

#include <stdio.h>
void convertstring(char *str[])
{
int i;
for (i = 0; *str[i] != '\0'; i++)
{
if (*str[i] >= 'a' && *str[i] <= 'z')
{
*str[i] = *str[i] - 32;
}
}
}

int main()
{
char str[100];
gets(str);
convertstring(&str);
printf("Uppercase string : %s", str);
return 0;
}

在这种情况下根本没有输出。我想在使用 void 函数时返回大写字符的全文。这可以使用其他类型的函数来完成,但挑战在于该函数必须是 void Convertstring(char *) 类型

最佳答案

您的代码存在几个问题:

首先,您使用的是 gets,它在 C99 中已弃用并在 C11 中删除。相反,使用fgets:

    fgets(str, sizeof(str), 100);

其次,您将一个指向数组的指针传递给该函数。你不应该这样做。

除了最后一点之外,您还在函数中对 char *[] 进行操作。相反,请使用 char *,如下所示:

void convertstring(char *str)
{
int i;
for (i = 0; str[i] != '\0'; i++)
{
if (str[i] >= 'a' && str[i] <= 'z')
{
str[i] = str[i] - 32;
}
}
}

你真的应该读一本关于 C 的好书或者了解指针。

关于c - 如何编写一个原型(prototype)为 'void convertstring(char *)' 的函数,在 C 中将小写字母转换为大写字母?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58896617/

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