清理 argv 程序

标签 c printing output argv

我有一个 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 显示它是否是回文。不知道如何让它等于原始输入,并且知道参数的数量。目前它打印反转的字符串,而我认为打印原始字符串看起来会更好。我认为我把这件事搞得太难了,但我不确定。

最佳答案

显而易见的方法是反转反转的字符串,另一种方法是使用双引号将单个参数/字符串传递给程序:

./program "a man a plan a canal panama"

而不是

./program a man a plan a canal panama

那么你不需要循环遍历参数。

关于清理 argv 程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29679920/

相关文章:

wpf - 如何在WPF中打印长帐单

c - C 结构体中的反向输出顺序

c - 了解 c 代码在 gcc 编译器上的输出

c - 为Windows实现C11线程

c - 在矩阵 C 中向下移动值

c - 使用指针切换字符

java - 在同一行输入 String 和 int

c - openmp parallel for - 它如何处理以前的私有(private)索引?

c - 如何在 C 中自动打印结构值(如 gdb ptype)?

php - 使用带有 <img src =""的 php 显示图像