【发布时间】:2010-08-12 19:05:32
【问题描述】:
我接受一个字符串作为命令行参数。我想检查输入的字符串是否是回文并打印结果。我已经编写了以下代码。但它显示所有输入的结果“不是回文”。
#include<stdio.h>
#include<string.h>
int main(int argc, char argv[20]) {
int i;
int l = strlen(argv);
char str[20];
bzero(str, 20);
for(i=0; i<l; i++)
{
str[i] = argv[i+2];
}
int flag;
int len = strlen(str);
for(i=0; i< len/2; i++)
{
if(str[i] == str[len - (i+2)])
{
flag = 0;
}
else
{
flag = 1;
break;
}
}
if(flag == 0)
printf("Palindrome\n");
else
printf("Not a palindrome\n");
}
【问题讨论】:
-
我无法在此处格式化代码。有人可以帮我解决编程问题吗?如何在不同的行上打印每一行代码?
-
要格式化您的代码,使用四个空格缩进,或使用 101010 按钮。它不像现在这样可读。
-
@user417316,从您使用的任何编辑器将代码粘贴到文本框中,全选,然后选择代码格式化按钮(看起来像小 1 和 0)。
-
不是您问题的答案,但无需在每次成功迭代时重置
flag。只需初始化它,仅在失败时更改它。此外,argv的类型错误,应该是char**;这可能会造成几乎任何形式的破坏。 -
@Thomas:谢谢!!它有帮助。 @Carl Norum:谢谢你的帮助!! @dmckee:谢谢!
标签: c palindrome