在行中找到回文并显示它们

时间:2018-11-26 13:36:22

标签: c visual-studio palindrome

提供了一个字符串,该字符串包含不超过100个字符的单词。单词由拉丁字符组成,并用单个空格分隔。必须将仅包含回文词的字符串输出到标准输出流。 必须将源数据整体读取到内存中,并且所有操作都必须在内存中执行,结果要在内存中存储然后打印。

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int check(char str[])
{
    int i, length;

    length = strlen(str);

    for (i = 0; i < length; i++)
        if (str[i] != str[(length - 1) - i]) return 0;
    return 1;
}

int main(void)
{
    char str[100];
    char* t;

    gets(str);
    t = strtok(str, " ");


    while (t != NULL) {
        if (check(t) == 1) {
            printf("%s ", t);

        }

        t = strtok(NULL, " ");
    }
    _getch();
    return 0;
}

这是我的代码(测试失败) 请帮助我修复代码

1 个答案:

答案 0 :(得分:0)

  1. 例如,使用功能fgets代替getline(&buffer, &size, stdion)
  2. 您在for函数中的check循环工作正常,但解决了另一个超出预期的问题。
  3. 回文是一个单词或一组单词,当您从头开始向前或从头开始向后阅读时,它们是相同的。