回文计划

use*_*913 1 c

我创建了一个程序,它接受一个输入的字符串并向后输出字符串.我创建了一个计算字符串中字符数的函数.有了这些信息,我创建了另一个函数,将原始数组的第一个字符放在新数组的末尾.因此,当函数中的循环完成时,新数组包含原始数组的字母但向后.然而,我遇到了一些困难.我仍然对字符数组保持警惕,我不确定我是否正确使用它们.有人可以帮帮我吗?

#include <stdio.h>

#define MAXLINE 1000

char backward(char str[], int count)
int count(char str[])

int main() {
    char orig[MAXLINE];
    int c;

    scanf("%s", orig);
    c = count(orig);
    printf("%s", backward(orig, c));

    return 0;
}

char backward(char str[], int count) {
    char back[MAXLINE];
    int i;

    for(i = 0; i <= count; ++i) {
        back[count] = str[i];
        --count;

    return back;
}

int count(char str[]) {
    int i;

    for (i = 0; str[i] != '\0'; ++i)
        ;

    return i;
}
Run Code Online (Sandbox Code Playgroud)

编辑:输入:让我们说"小型货车".预期的产出将是"navinim".还没有实际的输出.我收到这个错误:

palindrome.c:8: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘int’
Run Code Online (Sandbox Code Playgroud)

sar*_*old 5

你得到的错误是因为你的原型是错误的:

#include <stdio.h>

#define MAXLINE 1000

char backward(char str[], int count)  /* missing ; */
int count(char str[])                 /* missing ; */

int main() {
Run Code Online (Sandbox Code Playgroud)

你也应该考虑更换count()与strlen(3)来自<string.h>头文件.标准库中充满了已经调试并且已知可以正常工作的实用程序 - 值得使用它们.(是的,重新实施它们具有教育价值.但在这种情况下,请准备好对各种角落情况进行测试.)