#include <stdio.h>
#include <string.h>
typedef char String[80];
int main() {
String originalStr = "mail";
String reversedStr;
int index;
int len = strlen(originalStr);
for (index = 0; index < len; index++) {
reversedStr[index] = originalStr[len - index -1];
}
reversedStr[index] = '\0';
printf("Original is %s, reversed is %s\n", originalStr, reversedStr);
}
我想知道如何修改 main
函数使用 void
函数原型(prototype):void reverseString(String originalStr, String reversedStr);
事实上,我无法理解 void
之间的区别和main
.
最佳答案
在深入学习 C 语言之前,您必须学会正确缩进代码。它将使您的代码可读并防止许多愚蠢的错误。
我重新格式化了您发布的代码,看看它是如何完成的。
关于您的问题,您应该将用于反转字符串的代码移动到一个单独的函数中,并为其提供原型(prototype):
#include <stdio.h>
#include <string.h>
typedef char String[80];
void reverseString(String originalStr, String reversedStr) {
int index;
int len = strlen(originalStr);
for (index = 0; index < len; index++) {
reversedStr[index] = originalStr[len - index - 1];
}
reversedStr[index] = '\0';
}
int main(void) {
String originalStr = "mail";
String reversedStr;
reverseString(originalStr, reversedStr);
printf("Original is %s, reversed is %s\n", originalStr, reversedStr);
}
函数是编程语言中的基本 block ,用于将功能分解为更小的可重用步骤。请注意,函数中的 originalStr
和 reverseStr
是函数参数的名称。它们对于函数来说是本地的。从 main
传递的值在构造时恰好具有相同的名称,但这不是必需的。从一本好的教程书中了解更多信息。
关于无法使用字符串将 'main' 转换为 'void' 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36101552/