c - 回文程序

标签 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;
}

编辑:输入:让我们说“小型货车”。预期输出将是“navinim”。目前还没有实际输出。我收到此错误:

palindrome.c:8: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘int’

最佳答案

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

#include <stdio.h>

#define MAXLINE 1000

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

int main() {

您还应该考虑更换 count()strlen(3)来自 <string.h>头文件。标准库中充满了经过调试且已知运行良好的实用程序——值得使用它们。 (是的,重新实现它们具有教育值(value)。但在那种情况下,请准备好使用各种极端情况进行测试。)

关于c - 回文程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9106295/

相关文章:

c - 为什么这个 for 循环会无限运行?

c++ - 在 C++ 中使用 sscanf 从字符串中提取一个 int

c - glOrtho(-1, 1, -1, 1, -1, 1) 完成了什么?

c - 将二叉树打印到用户提供的文件中

c - 字符串末尾打印奇怪的符号 - C

c - ANSI C 中的树数据结构

在 K20 上没有 -G 选项时 CUDA C 返回不确定且奇怪的结果

c++ - 你如何处理NUL?

通过 M<N 的 GSL 计算矩阵的零空间会产生错误

c - 如何从文件中获取字符串并存储在二维字符数组中,并将该二维字符数组与 C 中的字符串进行比较?