提供了一个字符串,该字符串包含不超过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;
}
这是我的代码(测试失败) 请帮助我修复代码
答案 0 :(得分:0)
fgets
代替getline(&buffer, &size, stdion)
。for
函数中的check
循环工作正常,但解决了另一个超出预期的问题。