我有一个 argv c 程序,它反转单词,并查看它是否是回文。我只是想清理输出并让它打印原始输入而不是相反的输入,但由于它是 argv,我似乎不知道该怎么做。
int main(int argc, char* argv[])
{
char *string = (char*)malloc(1000);
string[0] = '\0';
for(i = 1; i < argc; i++)
strcat(string, argv[i]);
for(j = 0; string[ j ]; j++)
string[j] = tolower(string[ j ]);
reverse(string);
printf("Reverse of entered word is \"%s\".\n", string);
result = is_palindrome(string);
if ( result == 1)
printf("\"%s\" is a palindrome.\n", string);
khác
printf("\"%s\" is not a palindrome.\n", string);
system("pause");
}
我省略了其余的函数,但您可以在主要部分看到 printf 显示它是否是回文。不知道如何让它等于原始输入,并且知道参数的数量。目前它打印反转的字符串,而我认为打印原始字符串看起来会更好。我认为我把这件事搞得太难了,但我不确定。
显而易见的方法是反转反转的字符串,另一种方法是使用双引号将单个参数/字符串传递给程序:
./program "a man a plan a canal panama"
thay vì
./program a man a plan a canal panama
那么你不需要循环遍历参数。
Tôi là một lập trình viên xuất sắc, rất giỏi!