我有一个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);
else
printf("\"%s\" is not a palindrome.\n", string);
system("pause");
}
我遗漏了其余的功能,但你可以在主要部分看到printf显示它是否是回文 . 不知道如何使其等于原始输入,并知道参数的数量 . 目前它打印反转的字符串,当我认为打印原件会更好看 . 我想我太难了,但我不确定 .
3 回答
显而易见的方法是反转反向字符串,另一种方法是使用双引号将单个参数/字符串传递给程序:
代替
然后你不需要遍历args .
我看到两个问题:参数的数量在
argc
中 - 参见例如this question了解argc
和argv[]
的详细信息 .关于如何打印原始字符串,您可以在调用
reverse()
之前打印字符串,将原始字符串存储在临时变量中以便稍后输出或在打印之前再次反向输出 . 第三个选项看起来像这样:UPDATE 因为OP说教授会输入句子(没有引号!) .
这可以使用MSVC库函数简单地完成 . 因为
strdup
分配了内存,所以也需要清理 .计划结果: