gpt4 book ai didi

c - 如何正确原型(prototype)化 C 函数

转载 作者:太空宇宙 更新时间:2023-11-04 00:15:18 24 4
gpt4 key购买 nike

我正在学习用 C 语言制作原型(prototype)的概念,但是我在正确语法方面遇到了困难。我正在编写一个函数来从 C 字符串中去除所有非字母字符

#include <stdio.h>
#include <string.h>

char[30] clean(char[30] );

int main()
{
char word[30] = "hello";
char cleanWord[30];
cleanWord = clean(word);
return 0;
}


char[30] clean(char word[30])
{
char cleanWord[30];
int i;

for(i=0;i<strlen(word);i++)
if ( isalpha(word[i]) )
cleanWord[i]=word[i];

cleanWord[i]='\0';

return cleanWord;
}

如何正确制作函数原型(prototype)?阻止我的程序编译的其他语法错误是什么?

最佳答案

您的问题不在于函数原型(prototype)(又名前向声明)。您只是不能从 C 中的函数返回数组。您也不能分配给数组变量。您需要进行一些更改才能使工作正常进行。一种选择:

  1. main 中的 char cleanWord[30] 更改为 char * cleanWord
  2. clean 的签名更改为 char *clean(char word[30])
  3. 使用mallocclean 中分配目标缓冲区
  4. 返回指向新缓冲区的指针
  5. 释放main中的缓冲区

还有一个:

  1. clean 的签名更改为 void clean(char word[30], char cleanWord[30])
  2. clean 中操作传入的指针而不是本地数组
  3. main 中的调用更改为 clean(word, cleanWord)

关于c - 如何正确原型(prototype)化 C 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16952606/

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