【发布时间】:2016-01-22 12:23:22
【问题描述】:
我正在尝试创建一个程序来检查给定的数组/字符串是否是回文并且它不工作。该程序仅在每个给定数组上打印“0”,即使在回文上也是如此。
int main()
{
char string[100]= {0};
char stringReverse[100]= {0};
int temp = 0;
int firstLetter = 0;
int lastLetter = 0;
printf("Please enter a word or a sentence: ");
fgets(string, 100, stdin);
strcpy(stringReverse , string); // This function copies the scanned array to a new array called "stringReverse"
firstLetter = 0;
lastLetter = strlen(string) - 1; //because in array, the last cell is NULL
// This while reverses the array and insert it to a new array called "stringReverse"
while(firstLetter < lastLetter)
{
temp = stringReverse[firstLetter];
stringReverse[firstLetter] = stringReverse[lastLetter];
stringReverse[lastLetter] = temp;
firstLetter++;
lastLetter--;
}
printf("%s %s", stringReverse, string);
if ( strcmp(stringReverse , string) == 0)
{
printf("1");
}
else
{
printf("0");
}
}
【问题讨论】:
-
这么简单的任务代码太多了。
-
我已经发布了类似问题的答案here,您可以轻松适应您的需求
标签: c string palindrome